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

如何使用Az.Websites模块配置用户分配托管身份从ACR拉取镜像

配置Azure应用服务使用用户分配托管身份拉取ACR镜像的PowerShell实现

核心方案

你需要修改的是应用服务Web配置的隐藏属性,Set-AzWebApp未暴露直接参数的场景下,使用Az.Resources模块的Set-AzResource命令即可完全替代原有az cli命令实现同等配置,无需依赖az cli。

操作步骤

1. 替换参数

将以下代码中的占位符替换为实际环境值:

  • <subscription-id>:目标订阅ID
  • <resource-group-name>:应用服务所在资源组名称
  • <app-name>:应用服务名称
  • <your-user-assigned-mi-client-id>:用户分配托管身份的客户端ID

2. 执行配置命令

可选择单次调用合并配置,减少API请求次数:

# 定义Web配置资源ID
$webConfigId = "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Web/sites/<app-name>/config/web"

# 合并配置属性
$configProps = @{
    acrUseManagedIdentityCreds = $true
    AcrUserManagedIdentityID = "<your-user-assigned-mi-client-id>"
}

# 提交配置修改
Set-AzResource -ResourceId $webConfigId -Properties $configProps -Force

也可以分两次执行,和原az cli逻辑完全对齐:

$webConfigId = "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Web/sites/<app-name>/config/web"

# 开启托管身份拉取ACR凭证开关
Set-AzResource -ResourceId $webConfigId -Properties @{acrUseManagedIdentityCreds = $true} -Force

# 指定使用的用户分配托管身份ID
Set-AzResource -ResourceId $webConfigId -Properties @{AcrUserManagedIdentityID = "<your-user-assigned-mi-client-id>"} -Force

配置验证

执行以下命令即可确认配置是否生效:

(Get-AzResource -ResourceId $webConfigId).Properties | Select-Object acrUseManagedIdentityCreds, AcrUserManagedIdentityID

前置依赖

执行配置前需确认已完成以下准备:

  • 已为目标应用服务添加对应用户分配托管身份
  • 已为该托管身份分配目标ACR的AcrPull角色权限

内容的提问来源于stack exchange,提问作者Alexey Auslender

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 23:06:07