この記事では、Azure Developer CLI (azd) を使用するときに発生する可能性がある一般的なエラーの解決策について説明します。
ロールの割り当て書き込みに対する承認に失敗しました
エラーメッセージ:
Cause: ターゲット Azure サブスクリプションまたはリソース グループにロールを割り当てるための十分なアクセス許可がありません。 これは、ユーザー アカウントに アクセス権があるが、 または アクセス権がない場合に一般的です。 を使用すると、リソースを作成できますが、それらのリソースにアクセス許可 (ロールの割り当て) を付与することはできません。
対策: デプロイしているサブスクリプションまたはリソース グループに対して、アカウントが所有者またはユーザー アクセス管理者の役割を持っていることを確認してください。 これらのロールを付与できない場合は、管理者に最初のデプロイまたはロールの割り当てを実行するよう依頼してください。 詳細については、「Azure組み込みロールを参照してください。
ロールの割り当ては既に存在しています
エラーメッセージ:
原因: このエラーは、デプロイがリソースに既に存在するロールの割り当てを作成しようとしたときに発生します。 Azure Resource Manager (ARM) デプロイは冪等性がありますが、テンプレート内の特定の構成または競合状態が原因で、再デプロイ時にこのエラーが発生することがあります。
解決策:多くの場合、このエラーは断続的または無害です。
- デプロイを再試行してください:
を実行するか、 をもう一度実行してください。 -
Bicep テンプレートのチェック: テンプレートを維持する場合は、ロールの割り当てで有効な
nameプロパティ(多くの場合、厳密に決定論的な GUID)を使用して、アイデンポテンシーを確保します。 決定論的な名前を生成するには、guid() Bicep 関数を使用します。
テナント ID、プリンシパル ID、またはスコープの更新が許可されていません
エラーメッセージ:
原因: 既存の割り当てとは異なるプロパティを使用して、ロールの割り当てを再デプロイしようとしています。 ロールの割り当ては不変です。プリンシパル ID (ロールを受け取るユーザー/アプリ) または既存の割り当て ID のスコープを変更することはできません。
解決策:
- パラメーターを確認します。 同じロール割り当てリソースに対して別のプリンシパル ID (ユーザーとサービス プリンシパルの切り替えなど) を誤って渡さないことを確認します。
- Clean up: 役割の割り当てを変更する必要がある場合は、Azure ポータルや CLI で、az role assignment delete コマンドを使用して競合する役割の割り当てを削除し、その後再展開します。
リージョンの容量または SKU が使用できない
エラーメッセージ: [または「basic」]
Cause: 選択したAzure リージョンは、要求されたサービス SKU の容量が一時的に不足しています。 これは現在、eastus2 などの一般的なリージョンの AI サービス (Azure OpenAI など) で一般的です。
解決策:
- 場所を変更する:を実行して、可用性が向上したリージョンに切り替えます (たとえば、、、)。
-
Check availability:Azure Products by Region ページを使用するか、
az account list-locationsを実行して、サービスと SKU が使用可能なリージョンを確認します。
AI モデルの TPM クォータを超えました
エラーメッセージ:
Cause: サブスクリプションが、ターゲット リージョンで指定された Azure OpenAI モデルの 1 分あたりのトークン数 (TPM) のクォータ制限に達しました。
解決策:
- Request Quota:Azure AI Studio またはAzure ポータルを使用してクォータの引き上げを要求します。 詳細については、「Manage Azure OpenAI Service quota」を参照してください。
- モデル/リージョンの変更: 未使用のクォータがあるリージョンに切り替えるか、制限内に収まる別のモデル バージョンを使用します。
If-Match の前提条件が失敗しました
エラーメッセージ:
原因: 通常、この問題はコンカレンシーの競合を示しています。 2 つのプロセスが同じリソースを同時に更新しようとしているか、ローカルの状態がクラウド リソース (古い ETag) と同期していない可能性があります。
解決策:操作を再試行します。 エラーが解決しない場合:
- 他のデプロイ (CI/CD パイプライン、他の同僚) が同じ環境を同時にターゲットにしないようにします。
- Bicepを使用している場合は、テンプレートで依存関係 (
dependsOn) が正しく定義されていることを確認して、同じリソースへの並列変更を防ぎます。
承認済みの状態にある Cognitive Services アカウント
エラーメッセージ:
Cause: このエラーは、依存リソースが完全にプロビジョニングされアクティブになるまでに、依存リソースが Cognitive Services (Azure AI) アカウントと対話しようとするタイミングの問題です。 にコマンド フック ( など) を追加して、先に進む前にリソースの準備を一時停止または確認することもできます。
コンテナー アプリのリビジョン プロビジョニングの有効期限が切れている
エラーメッセージ:
Cause: Azure コンテナー アプリは、既定のタイムアウト期間内に起動できませんでした。 よくあるのは次のような理由です。
- コンテナーイメージが大きすぎて、取得に時間がかかりすぎます。
- 起動時にアプリケーションがクラッシュします。
- アプリケーションが構成されたポートでリッスンするのに時間がかかりすぎます。
解決策:
-
Check Logs: Azure ポータル (Log Stream) でコンテナー ログを表示するか、
azd monitorを使用してアプリがクラッシュしているかどうかを確認します。 - 構成の確認: あなたの構成がアプリケーションが待機するポートと一致していることを確認してください。 トラブルシューティングの手順の詳細については、「トラブルシューティングのAzure Container Apps」を参照してください>
-
Check Logs: Azure ポータル (Log Stream) でコンテナー ログを表示するか、
azd monitorを使用してアプリがクラッシュしているかどうかを確認します。 - 構成の確認: あなたの構成がアプリケーションが待機するポートと一致していることを確認してください。
- イメージの最適化: コンテナー イメージのサイズを小さくして、プルを高速化します。