通过


Azure开发人员 CLI 错误常见问题解答

本文提供了使用 Azure 开发人员 CLI 时可能会遇到的常见错误的解决方案(azd)。

角色分配的写入操作授权失败

错误信息:The template deployment failed with error: 'Authorization failed for template resource '<guid>' of type 'Microsoft.Authorization/roleAssignments'. The client '##Email##' with object id '<guid>' does not have permission to perform action 'Microsoft.Authorization/roleAssignments/write' at scope '<resourceId>'.'

原因:您没有足够的权限在目标 Azure 订阅或资源组中分配角色。 当用户帐户有 Contributor 访问权限,但没有 OwnerUser Access Administrator 访问权限时,这是很常见的。 Contributor 允许你创建资源,但不允许向这些资源授予权限(分配角色)。

解决方案: 确保帐户在要部署的订阅或资源组上具有 “所有者”“用户访问管理员” 角色。 如果无法授予这些角色,请让管理员为你执行初始部署或角色分配。 有关详细信息,请参阅 Azure 内置角色

角色分配已存在

错误信息:The role assignment already exists.

原因: 当部署尝试创建资源上已存在的角色分配时,会发生此错误。 虽然Azure Resource Manager(ARM)部署是幂等的,但模板中的某些配置或争用条件在重新部署时可能会触发此错误。

分辨率: 此错误通常是间歇性的或良性的。

  1. 重试部署:运行azd up或再次运行azd deploy
  2. 检查Bicep模板: 如果维护模板,请确保角色分配使用有效的name属性(通常是严格确定的GUID),以确保幂等性。 使用 guid() Bicep 函数生成确定性名称。

不允许更新租户 ID、主体 ID 或范围

错误信息:Tenant ID, application ID, principal ID, and scope are not allowed to be updated.

原因: 你尝试重新部署具有不同于现有分配的属性的角色分配。 角色分配是不可变的;无法更改主体 ID(接收角色的用户/应用)或现有分配 ID 的范围。

解决方法:

  1. 验证参数: 确保不会意外地为同一角色分配资源传递不同的主体 ID(例如,在用户和服务主体之间切换)。
  2. 清理: 如果需要更改角色分配,请在 Azure 门户 中手动删除冲突的角色分配,或使用 az role assignment delete 命令,然后重新部署。

区域容量或 SKU 不可用

错误消息:The region 'eastus2' currently does not have enough resources available to provision services with the SKU 'standard'. (或“basic”)

Cause:所选Azure区域暂时超出请求的服务 SKU 的容量。 目前,在eastus2等热门区域中,AI 服务(如 Azure OpenAI)很常见。

解决方法:

  1. 更改位置:运行azd env set AZURE_LOCATION <new-region>以切换到可用性更好的区域(例如,,swedencentralwestus3francecentral)。
  2. 检查可用性: 使用 Azure 产品按区域 页面或运行 az account list-locations 来检查服务和 SKU 可用的地区。

AI 模型的 TPM 配额已超出

错误信息:This operation require <amount> new capacity in quota Tokens Per Minute (thousands) - <model> - GlobalStandard, which is bigger than the current available capacity <available>.

Cause:您的订阅已达到目标区域中指定 Azure OpenAI 模型每分钟令牌 (TPM) 的配额限制。

解决方法:

  1. Request Quota: 通过 Azure AI Studio 或Azure门户请求增加配额。 有关详细信息,请参阅 Manage Azure OpenAI Service 配额
  2. 更改模型/区域: 切换到未使用配额的区域,或使用符合限制的不同模型版本。

If-Match 先决条件失败

错误信息:The specified precondition 'If-Match = ""&lt;guid&gt;""' failed.

原因: 此问题通常表示并发冲突。 两个进程可能尝试同时更新同一资源,或者本地状态与云资源(过时 ETag)不同步。

分辨率: 重试作。 如果错误仍然存在:

  1. 确保没有其他部署(如 CI/CD 管道、其他同事)同时针对同一环境进行操作。
  2. 如果使用Bicep,请验证模板是否正确定义了依赖项(dependsOn),以防止对同一资源进行并行修改。

处于“已接受”状态的认知服务帐户

错误信息:Call to Microsoft.CognitiveServices/accounts failed. Error message: Account <resourceId> in state Accepted.

Cause:此错误是一个计时问题,即依赖资源在完全预配和处于活动状态之前尝试与认知服务(Azure AI)帐户交互。 还可以在命令挂钩(例如,postprovision)中添加内容,在继续之前暂停或检查资源准备情况。

容器应用版本预配已过期

错误信息:Failed to provision revision for container app <appName>. Error details: Operation expired.

Cause: Azure 容器应用在默认超时期限内无法启动。 常见原因包括:

  • 容器镜像太大,下载需要的时间太长。
  • 应用程序在启动时崩溃。
  • 应用程序需要很长时间才能侦听配置的端口。

解决方法:

  1. Check Logs: 查看Azure门户(日志流)中的容器日志,或使用 azd monitor 查看应用是否崩溃。
  2. 查看配置:targetPort确保配置中的端口与应用侦听的端口匹配。 有关更多故障排除步骤,请参阅 Troubleshooting Azure Container Apps
  3. Check Logs: 查看Azure门户(日志流)中的容器日志,或使用 azd monitor 查看应用是否崩溃。
  4. 查看配置:targetPort确保配置中的端口与应用侦听的端口匹配。
  5. 优化图像: 减小容器映像的大小以加快拉取速度。