AzureAppServiceEnvironmentExtensions Methods
AddAzureAppServiceEnvironment(IDistributedApplicationBuilder, string) Section titled AddAzureAppServiceEnvironment(IDistributedApplicationBuilder, string) extension IResourceBuilder<AzureAppServiceEnvironmentResource> public static class AzureAppServiceEnvironmentExtensions{ public static IResourceBuilder<AzureAppServiceEnvironmentResource> AddAzureAppServiceEnvironment( this IDistributedApplicationBuilder builder, string name) { // ... }}Parameters
builder IDistributedApplicationBuilder The distributed application builder. name string The name of the resource. Returns
IResourceBuilder<AzureAppServiceEnvironmentResource> ApplicationModel.IResourceBuilder`1 WithAcrPullIdentity(IResourceBuilder<AzureAppServiceEnvironmentResource>, IResourceBuilder<AzureUserAssignedIdentityResource>) Section titled WithAcrPullIdentity(IResourceBuilder<AzureAppServiceEnvironmentResource>, IResourceBuilder<AzureUserAssignedIdentityResource>) extension IResourceBuilder<AzureAppServiceEnvironmentResource> Azure.AzureUserAssignedIdentityResource as the managed identity that App Service apps use to pull images from the configured container registry (the AcrPull identity), instead of having Aspire create a new identity and a new AcrPull role assignment. public static class AzureAppServiceEnvironmentExtensions{ public static IResourceBuilder<AzureAppServiceEnvironmentResource> WithAcrPullIdentity( this IResourceBuilder<AzureAppServiceEnvironmentResource> builder, IResourceBuilder<AzureUserAssignedIdentityResource> identityBuilder) { // ... }}Parameters
builder IResourceBuilder<AzureAppServiceEnvironmentResource> The Azure App Service environment to configure. identityBuilder IResourceBuilder<AzureUserAssignedIdentityResource> The resource builder for the user-assigned identity that should be used for image pulls. The supplied identity must already have the AcrPull role on the configured container registry. Returns
IResourceBuilder<AzureAppServiceEnvironmentResource> The ApplicationModel.IResourceBuilder`1 for chaining. Exceptions
ArgumentNullException Thrown when builder or identityBuilder is null. Remarks
When this is set, Aspire will not create a new identity or an AcrPull role assignment for the container registry. The caller is responsible for ensuring the supplied identity already has the required AcrPull role assignment on the registry, for example by chaining .WithRoleAssignments(acr, ContainerRegistryBuiltInRole.AcrPull) when adding the identity.
Unlike the equivalent method on Azure Container Apps, App Service reuses this single identity for more than just image pulls. The same identity is also attached to every generated App Service web app as a user-assigned managed identity, and is used by the Aspire OTLP sidecar to authenticate telemetry to the Aspire dashboard (it is added to the dashboard's ALLOWED_MANAGED_IDENTITIES and exposed to each app via the OTEL client-id app setting). If you supply an existing identity here, it will take on all of these roles.
This is commonly combined with AsExisting on the App Service environment (App Service Plan) and on the container registry to deploy websites into a pre-provisioned set of Azure resources without Aspire emitting any new ACR-pull identity or ACR-pull role-assignment resources. See https://github.com/microsoft/aspire/issues/14382 for the scenario this addresses.
Only the combination of an existing App Service Plan, an existing container registry, and this method avoids emitting any new identity or role-assignment resources in the env module. Other combinations still work but will emit additional resources:
- If the App Service Plan is marked
AsExistingbut no identity is supplied here, Aspire still emits a newUserAssignedIdentityand anAcrPullrole assignment on the configured registry. - If this method is used but the container registry is not existing (either the Aspire-generated default registry or a user-added registry without
AsExisting), the registry itself is still provisioned. To wire the supplied identity to that newly-created registry, chain.WithRoleAssignments(acr, ContainerRegistryBuiltInRole.AcrPull)on the identity.
If the Aspire dashboard is enabled, Aspire still provisions the dashboard website and its contributor identity. Use AzureAppServiceEnvironmentExtensions.WithDashboard with false when targeting a fully pre-provisioned App Service Plan that should not receive a dashboard.
WithAzureApplicationInsights(IResourceBuilder<AzureAppServiceEnvironmentResource>) Section titled WithAzureApplicationInsights(IResourceBuilder<AzureAppServiceEnvironmentResource>) extension IResourceBuilder<AzureAppServiceEnvironmentResource> public static class AzureAppServiceEnvironmentExtensions{ public static IResourceBuilder<AzureAppServiceEnvironmentResource> WithAzureApplicationInsights( this IResourceBuilder<AzureAppServiceEnvironmentResource> builder) { // ... }}Parameters
builder IResourceBuilder<AzureAppServiceEnvironmentResource> The AzureAppServiceEnvironmentResource to configure. Returns
IResourceBuilder<AzureAppServiceEnvironmentResource> ApplicationModel.IResourceBuilder`1 WithAzureApplicationInsights(IResourceBuilder<AzureAppServiceEnvironmentResource>, string) Section titled WithAzureApplicationInsights(IResourceBuilder<AzureAppServiceEnvironmentResource>, string) extension IResourceBuilder<AzureAppServiceEnvironmentResource> public static class AzureAppServiceEnvironmentExtensions{ public static IResourceBuilder<AzureAppServiceEnvironmentResource> WithAzureApplicationInsights( this IResourceBuilder<AzureAppServiceEnvironmentResource> builder, string applicationInsightsLocation) { // ... }}Parameters
builder IResourceBuilder<AzureAppServiceEnvironmentResource> The AzureAppServiceEnvironmentResource to configure. applicationInsightsLocation string The location for Application Insights. Returns
IResourceBuilder<AzureAppServiceEnvironmentResource> ApplicationModel.IResourceBuilder`1 WithAzureApplicationInsights(IResourceBuilder<AzureAppServiceEnvironmentResource>, IResourceBuilder<ParameterResource>) Section titled WithAzureApplicationInsights(IResourceBuilder<AzureAppServiceEnvironmentResource>, IResourceBuilder<ParameterResource>) extension IResourceBuilder<AzureAppServiceEnvironmentResource> public static class AzureAppServiceEnvironmentExtensions{ public static IResourceBuilder<AzureAppServiceEnvironmentResource> WithAzureApplicationInsights( this IResourceBuilder<AzureAppServiceEnvironmentResource> builder, IResourceBuilder<ParameterResource> applicationInsightsLocation) { // ... }}Parameters
builder IResourceBuilder<AzureAppServiceEnvironmentResource> The AzureAppServiceEnvironmentResource to configure. applicationInsightsLocation IResourceBuilder<ParameterResource> The location parameter for Application Insights. Returns
IResourceBuilder<AzureAppServiceEnvironmentResource> ApplicationModel.IResourceBuilder`1 WithAzureApplicationInsights(IResourceBuilder<AzureAppServiceEnvironmentResource>, IResourceBuilder<AzureApplicationInsightsResource>) Section titled WithAzureApplicationInsights(IResourceBuilder<AzureAppServiceEnvironmentResource>, IResourceBuilder<AzureApplicationInsightsResource>) extension IResourceBuilder<AzureAppServiceEnvironmentResource> public static class AzureAppServiceEnvironmentExtensions{ public static IResourceBuilder<AzureAppServiceEnvironmentResource> WithAzureApplicationInsights( this IResourceBuilder<AzureAppServiceEnvironmentResource> builder, IResourceBuilder<AzureApplicationInsightsResource> applicationInsightsBuilder) { // ... }}Parameters
builder IResourceBuilder<AzureAppServiceEnvironmentResource> The AzureAppServiceEnvironmentResource builder to configure. applicationInsightsBuilder IResourceBuilder<AzureApplicationInsightsResource> The Application Insights resource builder. Returns
IResourceBuilder<AzureAppServiceEnvironmentResource> ApplicationModel.IResourceBuilder`1 WithDashboard(IResourceBuilder<AzureAppServiceEnvironmentResource>, bool) Section titled WithDashboard(IResourceBuilder<AzureAppServiceEnvironmentResource>, bool) extension IResourceBuilder<AzureAppServiceEnvironmentResource> public static class AzureAppServiceEnvironmentExtensions{ public static IResourceBuilder<AzureAppServiceEnvironmentResource> WithDashboard( this IResourceBuilder<AzureAppServiceEnvironmentResource> builder, bool enable = true) { // ... }}Parameters
builder IResourceBuilder<AzureAppServiceEnvironmentResource> The ApplicationModel.IResourceBuilder`1 to configure. enable bool optional Whether to include the Aspire dashboard. Default is true. Returns
IResourceBuilder<AzureAppServiceEnvironmentResource> A reference to the ApplicationModel.IResourceBuilder`1 for chaining additional configuration. WithDeploymentSlot(IResourceBuilder<AzureAppServiceEnvironmentResource>, IResourceBuilder<ParameterResource>) Section titled WithDeploymentSlot(IResourceBuilder<AzureAppServiceEnvironmentResource>, IResourceBuilder<ParameterResource>) extension IResourceBuilder<AzureAppServiceEnvironmentResource> public static class AzureAppServiceEnvironmentExtensions{ public static IResourceBuilder<AzureAppServiceEnvironmentResource> WithDeploymentSlot( this IResourceBuilder<AzureAppServiceEnvironmentResource> builder, IResourceBuilder<ParameterResource> deploymentSlot) { // ... }}Parameters
builder IResourceBuilder<AzureAppServiceEnvironmentResource> The AzureAppServiceEnvironmentResource to configure. deploymentSlot IResourceBuilder<ParameterResource> The deployment slot parameter for all App Services in the App Service Environment. Returns
IResourceBuilder<AzureAppServiceEnvironmentResource> ApplicationModel.IResourceBuilder`1 WithDeploymentSlot(IResourceBuilder<AzureAppServiceEnvironmentResource>, string) Section titled WithDeploymentSlot(IResourceBuilder<AzureAppServiceEnvironmentResource>, string) extension IResourceBuilder<AzureAppServiceEnvironmentResource> public static class AzureAppServiceEnvironmentExtensions{ public static IResourceBuilder<AzureAppServiceEnvironmentResource> WithDeploymentSlot( this IResourceBuilder<AzureAppServiceEnvironmentResource> builder, string deploymentSlot) { // ... }}Parameters
builder IResourceBuilder<AzureAppServiceEnvironmentResource> The AzureAppServiceEnvironmentResource to configure. deploymentSlot string The deployment slot for all App Services in the App Service Environment. Returns
IResourceBuilder<AzureAppServiceEnvironmentResource> ApplicationModel.IResourceBuilder`1 WithHttpsUpgrade(IResourceBuilder<AzureAppServiceEnvironmentResource>, bool) Section titled WithHttpsUpgrade(IResourceBuilder<AzureAppServiceEnvironmentResource>, bool) extension IResourceBuilder<AzureAppServiceEnvironmentResource> public static class AzureAppServiceEnvironmentExtensions{ public static IResourceBuilder<AzureAppServiceEnvironmentResource> WithHttpsUpgrade( this IResourceBuilder<AzureAppServiceEnvironmentResource> builder, bool upgrade = true) { // ... }}Parameters
builder IResourceBuilder<AzureAppServiceEnvironmentResource> The ApplicationModel.IResourceBuilder`1 to configure. upgrade bool optional Whether to upgrade HTTP endpoints to HTTPS. Default is true. Returns
IResourceBuilder<AzureAppServiceEnvironmentResource> A reference to the ApplicationModel.IResourceBuilder`1 for chaining additional configuration. Remarks
false), HTTP endpoints will use HTTP scheme and port 80 in Azure App Service. Note that Azure App Service forces HTTP to HTTPS redirects at the platform level, so disabling upgrade primarily affects connection strings generated for dependent resources. Examples
Preserve HTTP endpoints instead of automatically upgrading them to HTTPS:
var appService = builder.AddAzureAppServiceEnvironment("appservice") .WithHttpsUpgrade(false);