🦐

【Azure/Bicep】CLIでデプロイするときに詳細なエラーログを見る方法

に公開

課題

BicepからAzureリソースを構築する際に、デプロイが失敗すると、よく下記のようなエラーメッセージが表示されます。

az deployment sub create `
>>   --location japaneast `
>>   --template-file .\deployments\main.bicep 
The content for this response was already consumed ←エラーメッセージ

"The content for this response was already consumed"は直訳すると
「このレスポンスの内容は既に消費済みです」という意味になります。
生成AIにエラーの解決方法を聞くと下記のような回答を得られます。

Azure CLIの一時的な問題 : 内部でレスポンスの処理に問題が発生
ネットワーク接続の問題 : デプロイ中に通信が中断された
テンプレートファイルの問題 : Bicepファイルに構文エラーがある可能性
Azure CLIのバージョン問題 : 古いバージョンのバグ
- 単純にもう一度同じコマンドを実行してください
- ほとんどの場合、再実行すれば正常に動きます
- Azure CLI側の一時的な不具合なので、あなたのBicepファイルに問題があるわけではありません

生成AIによれば、「単純にもう一度同じコマンドを実行すれば解決する」とありますが
実際にはこれは間違っている可能性が高いです。

私の勝手な解釈ですが、"The content for this response was already consumed"が表示されたときは
「一部分はデプロイできたが、他の部分で問題があるよ」
という風に思っています。
また、AIの回答にあるこれらの具体的なエラーログを見ることがより重要であると思います。

Azure CLIの一時的な問題 : 内部でレスポンスの処理に問題が発生
ネットワーク接続の問題 : デプロイ中に通信が中断された
テンプレートファイルの問題 : Bicepファイルに構文エラーがある可能性
Azure CLIのバージョン問題 : 古いバージョンのバグ

そこで今回はより詳細なエラーログを見る方法を残します。

--debugを追加する

デプロイコマンドに--debugを追加すればOKです。

az deployment sub create `
>>   --location japaneast `
>>   --template-file .\deployments\main.bicep ` ←バッククォートを追加
>>   --debug ←これを追加

すると大量のLogが流れるのですが、そこにエラーログが紛れています。

Exception Details:      (ValidationForResourceFailed) Validation failed for a resource. Check 'Error.Details[0]' for more information.
        Code: ValidationForResourceFailed
        Message: Validation failed for a resource. Check 'Error.Details[0]' for more information.
        Exception Details:      (SubscriptionIsOverQuotaForSku) Quota exceeded for : 0 VMs allowed, 1 VMs requested.. Try selecting different region or SKU.
                Code: SubscriptionIsOverQuotaForSku
                Message: Quota exceeded for : 0 VMs allowed, 1 VMs requested.. Try selecting different region or SKU.

このログは
「○○というVMはこのリージョンでこれ以上作れないよ。サイズかリージョン変えてね」の意味合いです。
なので、AppServicePlanのデプロイリージョンをjapaneastからjapanwestに変更したら無事デプロイすることができました。

ヘッドウォータース

Discussion