Поделиться через


Вопросы и ответы об ошибках интерфейса командной строки разработчика Azure

В этой статье приводятся решения распространенных ошибок, которые могут возникнуть при использовании интерфейса командной строки разработчика Azure (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>'.'

Cause: У вас нет достаточных разрешений для назначения ролей в целевой Azure подписке или группе ресурсов. Это часто происходит, когда у вашей учетной записи пользователя есть Contributor доступ, но нет ни Owner, ни User Access Administrator доступа. Contributor позволяет создавать ресурсы, но не предоставлять разрешения (назначать роли) этим ресурсам.

Разрешение: Убедитесь, что у вашей учетной записи есть роль "Владелец" или "Администратор доступа пользователей" в подписке или группе ресурсов, в которую вы развертываете. Если вам не могут предоставить эти роли, попросите администратора выполнить первоначальное развертывание или назначение ролей. Дополнительные сведения см. в разделе «встроенные роли Azure».

Распределение ролей уже существует

Сообщение об ошибке:The role assignment already exists.

Причина: Эта ошибка возникает, когда при попытке развертывания создается назначение роли, которое уже существует на ресурсе. Хотя развертывания Azure Resource Manager (ARM) являются идемпотентными, некоторые конфигурации или условия гонки в шаблонах могут вызвать эту ошибку при повторном развертывании.

Разрешение: Эта ошибка часто возникает периодически или доброкачественно.

  1. Повторите развертывание: Запустите azd up или azd deploy снова.
  2. Проверьте шаблоны Bicep: Если вы поддерживаете шаблон, убедитесь, что назначения ролей используют допустимые свойства name (часто строго определенные идентификаторы GUID), чтобы обеспечить идемпотентность. Используйте функцию guid() Bicep для создания детерминированных имен.

Идентификатор арендатора, идентификатор объекта или область не подлежат обновлению.

Сообщение об ошибке:Tenant ID, application ID, principal ID, and scope are not allowed to be updated.

Причина: Вы пытаетесь повторно развернуть назначение ролей со свойствами, которые отличаются от существующего назначения. Назначения ролей неизменяемы; Невозможно изменить идентификатор субъекта (пользователь или приложение, получающее роль) или область существующего идентификатора назначения.

Резолюция:

  1. Проверьте параметры: Убедитесь, что вы не случайно передаете другой идентификатор субъекта (например, переключение между пользователем и субъектом-службой) для одного ресурса назначения ролей.
  2. Чистка: Если необходимо изменить назначение, вручную удалите конфликтующее назначение роли на портале Azure или с помощью CLI, используя az role assignment delete, затем повторно выполните развертывание.

Емкость региона или номер SKU недоступны

Сообщение об ошибке:The region 'eastus2' currently does not have enough resources available to provision services with the SKU 'standard'. (или "базовый" )

Cause: Выбранный регион Azure временно не имеет емкости для запрошенного номера SKU службы. В настоящее время это часто используется службами ИИ (например, Azure OpenAI) в популярных регионах, таких как eastus2.

Резолюция:

  1. Изменение расположения: Запуститеazd env set AZURE_LOCATION <new-region>, чтобы переключиться в регион с более эффективной доступностью (например, swedencentral, westus3). francecentral
  2. Проверить доступность: Используйте страницу Azure продукты по регионам или выполните az account list-locations, чтобы проверить, в каких регионах доступны служба и SKU.

Превышена квота для моделей ИИ на использование доверенного платформенного модуля (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: Подписка достигла предела квоты по токенам в минуту (TPM) для указанной модели OpenAI в целевом регионе для Azure.

Резолюция:

  1. Запрос квоты: Подайте запрос на увеличение квоты через Azure AI Studio или портал Azure. Дополнительные сведения см. в разделе Управление квотой службы Azure OpenAI.
  2. Изменение моделей или регионов: Перейдите в регион, где у вас неиспользуемая квота или используйте другую версию модели, которая соответствует вашим ограничениям.

предусловие If-Match не выполнено

Сообщение об ошибке:The specified precondition 'If-Match = ""&lt;guid&gt;""' failed.

Причина: Эта проблема обычно указывает на конфликт параллелизма. Два процесса могут пытаться одновременно обновить один и тот же ресурс или локальное состояние не синхронизировано с облачным ресурсом (устаревший ETag).

Разрешение: Повторите операцию. Если ошибка сохраняется:

  1. Убедитесь, что другие развертывания (конвейеры CI/CD, другие коллеги) не нацелены на ту же среду одновременно.
  2. При использовании Bicep убедитесь, что шаблон правильно определяет зависимости (dependsOn), чтобы предотвратить параллельные изменения в одном ресурсе.

Учетная запись Cognitive Services в состоянии "Принято"

Сообщение об ошибке:Call to Microsoft.CognitiveServices/accounts failed. Error message: Account <resourceId> in state Accepted.

Причина: Эта ошибка связана с несоответствием сроков, когда зависимый ресурс пытается взаимодействовать с учетной записью Cognitive Services (Azure ИИ), прежде чем она не является полностью подготовленной и активной. Вы также можете добавить перехватчик команды (например, postprovision) в azure.yaml, чтобы приостановить выполнение или проверить готовность ресурсов перед продолжением.

Срок действия подготовки редакции приложения-контейнера истек

Сообщение об ошибке:Failed to provision revision for container app <appName>. Error details: Operation expired.

Cause: Не удалось запустить приложение контейнера Azure в течение периода времени ожидания по умолчанию. Некоторые из распространенных причин:

  • Образ контейнера слишком велик и занимает слишком много времени для скачивания.
  • Приложение завершает работу при запуске.
  • Приложение занимает слишком много времени, чтобы прослушивать настроенный порт.

Резолюция:

  1. Check Logs: Просмотрите журналы контейнеров на портале Azure (log Stream) или с помощью azd monitor, чтобы узнать, происходит ли сбой приложения.
  2. Проверка конфигурации: Убедитесь, что в вашей targetPort конфигурации соответствует порту, на котором приложение прослушивает. Дополнительные действия по устранению неполадок см. в разделе Troubleshooting Azure Container Apps
  3. Check Logs: Просмотрите журналы контейнеров на портале Azure (log Stream) или с помощью azd monitor, чтобы узнать, происходит ли сбой приложения.
  4. Проверка конфигурации: Убедитесь, что в вашей targetPort конфигурации соответствует порту, на котором приложение прослушивает.
  5. Оптимизация образа: Уменьшите размер образа контейнера, чтобы ускорить загрузку.