You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bicep部署后Azure App Service托管标识重置问题排查与解决

问题:Azure App Service部署后ACR拉取镜像的托管标识被清空/重置

我们在使用Azure App Service时遇到以下问题:用于从Azure Container Registry (ACR)拉取容器镜像的托管标识,在Bicep部署后被清空或重置。

原Bicep配置

我们使用的资源版本为 Microsoft.Web/sites@2023-12-01,相关配置如下:

linuxFxVersion: 'DOCKER|test.azurecr.io/dummy/app:1.0.0'
acrUseManagedIdentityCreds: true
acrUserManagedIdentityID: identityId

尝试过的操作

曾尝试将identityId改为使用主体ID而非资源ID,但触发了另一个错误。

提问

是否有人遇到过此问题?或有调试/修复建议?该问题是否与资源版本或配置有关?


编辑:最终解决方法

针对ACR的配置调整

添加DOCKER_REGISTRY_SERVER_URL应用设置,并移除acrUserManagedIdentityID参数,配置如下:

linuxFxVersion: 'DOCKER|test.azurecr.io/dummy/app:1.0.0'
acrUseManagedIdentityCreds: true
appSettings: [
  {
    name: 'DOCKER_REGISTRY_SERVER_URL'
    value: 'https://test.azurecr.io'
  }
]

针对Docker Hub的直接拉取配置

观察linuxFxVersion的行为后,我们配置了直接从Docker Hub拉取镜像的设置:

linuxFxVersion: 'DOCKER|index.docker.io/dummy/app:1.0.0'
appSettings: [
  {
   name: 'DOCKER_REGISTRY_SERVER_PASSWORD'
   value: '@Microsoft.KeyVault(SecretUri=${keyVaultSecretUri}/dummy-docker-key/)'
  }
  {
   name: 'DOCKER_REGISTRY_SERVER_USERNAME'
   value: 'dummy'
  }
  {
   name: 'DOCKER_REGISTRY_SERVER_URL'
   value: 'https://index.docker.io/v1'
  }
]

注意事项

注意到DOCKER_REGISTRY_SERVER_URL中需要包含/v1,但linuxFxVersion中不需要,这一点容易混淆,不过最终配置可以正常工作。希望官方文档能明确说明该参数的行为,包括输入URL时的格式要求。


内容的提问来源于stack exchange,提问作者Jasper Pol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 04:47:03