Aspire.Hosting.Azure.Provisioning.AppService
13.6.0-preview.1.26479.8
Prefix Reserved
dotnet add package Aspire.Hosting.Azure.Provisioning.AppService --version 13.6.0-preview.1.26479.8
NuGet\Install-Package Aspire.Hosting.Azure.Provisioning.AppService -Version 13.6.0-preview.1.26479.8
<PackageReference Include="Aspire.Hosting.Azure.Provisioning.AppService" Version="13.6.0-preview.1.26479.8" />
<PackageVersion Include="Aspire.Hosting.Azure.Provisioning.AppService" Version="13.6.0-preview.1.26479.8" />
<PackageReference Include="Aspire.Hosting.Azure.Provisioning.AppService" />
paket add Aspire.Hosting.Azure.Provisioning.AppService --version 13.6.0-preview.1.26479.8
#r "nuget: Aspire.Hosting.Azure.Provisioning.AppService, 13.6.0-preview.1.26479.8"
#:package Aspire.Hosting.Azure.Provisioning.AppService@13.6.0-preview.1.26479.8
#addin nuget:?package=Aspire.Hosting.Azure.Provisioning.AppService&version=13.6.0-preview.1.26479.8&prerelease
#tool nuget:?package=Aspire.Hosting.Azure.Provisioning.AppService&version=13.6.0-preview.1.26479.8&prerelease
Azure Provisioning App Service hosting integration
This package is experimental and emits ASPIREAZUREPROVISIONING001.
Use this integration to customize Azure App Service infrastructure from a polyglot Aspire AppHost. It references Aspire.Hosting.Azure.AppService and projects a bounded configuration surface from Azure.Provisioning.AppService; deployment and resource lifecycle remain with the hosting integration.
Getting started
Prerequisites
An Azure subscription when provisioning resources.
Add the integration
From your AppHost directory, add the Aspire.Hosting.Azure.Provisioning.AppService integration with the Aspire CLI:
aspire add Aspire.Hosting.Azure.Provisioning.AppService
Usage example
Then, in a TypeScript AppHost, customize the App Service plan created by Aspire:
import { createBuilder } from "./.aspire/modules/aspire.mjs";
const builder = await createBuilder();
const environment = await builder.addAzureAppServiceEnvironment("apps");
const planIdentifier = `${await environment.getBicepIdentifier()}_asplan`;
await environment.configureInfrastructure(async infrastructure => {
const plan = await infrastructure.getAppServicePlanByIdentifier(planIdentifier);
const tags = await plan.tags.get();
await tags.set("environment", "production");
});
Plans and websites use identifier-based lookup. The plan's Bicep identifier has an _asplan suffix; the website uses webapp. Website customizations belong in the website publish callback, not the environment callback.
Scope and limitations
AppServicePlan and WebSite are selected SDK models, not no-argument infrastructure roots: their Bicep identifiers differ from the callback's hosting resource identifier. Compatible SDK models are projected, not every member. Supported BicepValue<T> properties accept the corresponding language value or a shared Bicep expression.
IPAddresses, ExternalInboundIPAddresses, InternalInboundIPAddresses, LinuxOutboundIPAddresses, and WindowsOutboundIPAddresses are exposed as IP address collection proxies. Writable lists accept IPv4/IPv6 strings or Bicep value handles for add, insert, and set operations. Element getters preserve literals, expressions, and references as Bicep value handles; invalid address strings fail validation rather than being silently dropped. Azure SDK read-only output restrictions still apply.
To customize supporting SDK resources, also opt into Aspire.Hosting.Azure.Provisioning.ContainerRegistry, .ApplicationInsights, or .OperationalInsights as needed. Shared secret infrastructure uses .KeyVault; separately modeled subnets use .Network (and private DNS uses .PrivateDns). These are separate proxy opt-ins, not additional App Service models.
Additional documentation
- Hosting integration
- Provisioning inventory and shared expressions
- https://aspire.dev/integrations/gallery/
- https://learn.microsoft.com/azure/app-service/
- https://learn.microsoft.com/dotnet/azure/sdk/provisioning/
Feedback & contributing
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Aspire.Hosting.Azure.AppService (>= 13.6.0)
- Aspire.Hosting.Azure.Provisioning (>= 13.6.0-preview.1.26479.8)
- AspNetCore.HealthChecks.Uris (>= 9.0.0)
- Azure.Core (>= 1.62.0)
- Azure.Identity (>= 1.21.0)
- Azure.Provisioning (>= 1.6.0)
- Azure.Provisioning.ApplicationInsights (>= 1.1.0)
- Azure.Provisioning.AppService (>= 1.3.1)
- Azure.Provisioning.ContainerRegistry (>= 1.1.0)
- Azure.Provisioning.KeyVault (>= 1.1.0)
- Azure.Provisioning.OperationalInsights (>= 1.1.0)
- Azure.ResourceManager.Authorization (>= 1.1.7)
- Azure.ResourceManager.KeyVault (>= 1.4.0)
- Azure.ResourceManager.Resources.Deployments (>= 1.0.0)
- Azure.Security.KeyVault.Secrets (>= 4.11.1)
- Google.Protobuf (>= 3.36.1)
- Grpc.AspNetCore (>= 2.83.0)
- Grpc.Net.ClientFactory (>= 2.83.0)
- Grpc.Tools (>= 2.83.0)
- Hex1b (>= 0.168.0)
- KubernetesClient (>= 19.0.2)
- MessagePack (>= 2.5.302)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.12)
- Microsoft.Extensions.Configuration.EnvironmentVariables (>= 10.0.12)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 8.0.31)
- Microsoft.Extensions.FileSystemGlobbing (>= 10.0.12)
- Microsoft.Extensions.Hosting (>= 10.0.12)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Http (>= 10.0.12)
- Microsoft.Extensions.Logging (>= 10.0.12)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Options (>= 10.0.12)
- Microsoft.Extensions.Primitives (>= 10.0.12)
- ModelContextProtocol (>= 1.4.1)
- NCrontab.Signed (>= 3.4.0)
- Newtonsoft.Json (>= 13.0.4)
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.17.0)
- OpenTelemetry.Extensions.Hosting (>= 1.17.0)
- Polly.Core (>= 8.7.0)
- Semver (>= 3.0.0)
- StreamJsonRpc (>= 2.25.29)
- System.IO.Hashing (>= 10.0.12)
- System.Text.Json (>= 10.0.12)
- YamlDotNet (>= 18.1.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 13.6.0-preview.1.26479.8 | 55 | 9/29/2026 |