Azure Developer CLI(azd)が、バージョン1.23.11からGitHub Copilotと統合されました。
Azureへのデプロイで手が止まりがちな場面が2つあります。「インフラ構成ファイルを一から書く初期設定」と「エラーメッセージを調べてコマンドを打ち直す繰り返し」です。azdとGitHub Copilotの統合は、この両方を端末内で完結させます。
この記事でわかること:
azd initでコードからインフラ構成を自動生成する手順- デプロイ失敗時にCopilotが提示する4つの選択肢と使い分け
- よく遭遇するAzureエラーをCopilotがどう解決するか
- デフォルト動作をカスタマイズする設定方法
https://devblogs.microsoft.com/azure-sdk/azd-copilot-integration/
azd initがコードを読んでインフラ構成を生成する
azd initを実行すると、「Set up with GitHub Copilot (Preview)」という選択肢が表示されます。これを選ぶと、Copilotがプロジェクトのコードを解析し、azure.yamlとBicepのインフラテンプレートを自動生成します。
従来の手順と比べると、手間の差は明確です。たとえばExpress APIにPostgreSQLを使うNode.jsアプリをAzureにデプロイする場合、これまでは次の作業が必要でした。
- ドキュメントを参照して適切なホスト種別(Container Apps・App Service・Functionsのどれか)を判断する
azure.yamlにlanguage・host・buildを正しく記述する- アプリ用・データベース用・ネットワーク用のBicepモジュールを手書きする
Copilot統合では、ExpressフレームワークとPostgreSQLの依存関係を検出し、Azure Container Apps用のBicepモジュールとAzure Database for PostgreSQL用のBicepモジュールを生成します。変更内容はディスクへの書き込み前にレビューと承認が求められるため、意図しない変更が加わることはありません。
実行コマンドは1行です。
azd init
# 「Set up with GitHub Copilot (Preview)」を選択
Copilotは作業前にgitの作業ディレクトリがクリーンかどうかの確認と、MCP(Model Context Protocol)サーバーへのアクセス同意を求めます。コミットしていない変更があれば先にコミットが必要です。
デプロイエラーに4つの選択肢で対処する
azd provisionやazd upが失敗した後、従来の対処フローはこうなります。エラーメッセージをコピーしてドキュメントやStack Overflowで検索し、修正用のAzure CLIコマンドを実行して再デプロイする。このループには時間がかかります。
Copilot統合では、azdコマンドが失敗すると端末上に4つの選択肢が表示されます。
- Explain — 何が起きたかを平易な言葉で説明する
- Guidance — 修正手順をステップ形式で提示する
- Diagnose and Guide — 原因を診断し修正を適用する(承認が必要)。その後、失敗したコマンドを再実行できる
- Skip — Copilotを使わず自分で対処する
Copilotはプロジェクトの構成・実行したコマンド・エラー詳細を把握した状態で提案するため、汎用的な回答ではなくプロジェクト固有の修正案が出てきます。ブラウザを開く必要はありません。
典型的なAzureエラーをCopilotがどう解決するか
Azureデプロイでよく遭遇するエラーと、Copilotの対処方法を3つ紹介します。
MissingSubscriptionRegistration(リソースプロバイダー未登録)
初めてのサブスクリプションにContainer Appをデプロイすると、Microsoft.Appが未登録で失敗することがあります。Copilotの「Troubleshoot」オプションはプロバイダーの登録を実行し、そのままデプロイを再試行します。
SkuNotAvailable / OperationNotAllowed(SKUまたはクォータ制限)
リージョンのキャパシティ制約やvCPUクォータの上限に達した場合、「Explain」で制限の内容を確認でき、「Guidance」で代替リージョンやVMサイズの候補、クォータ引き上げの手順を提示します。
StorageAccountAlreadyTaken(ストレージアカウント名の重複)
ストレージアカウント名はAzure全体でユニークである必要があります。Copilotは環境名やランダムサフィックスを付加する変更をBicepパラメーターに提案します。
デフォルト動作を設定してプロンプトを省略する
毎回同じ選択肢を選んでいる場合、azd configでデフォルトを固定できます。
# エラー時に自動で診断と修正ガイドを実行する
azd config set copilot.errorHandling.category troubleshoot
# 自動修正と再実行を許可する
azd config set copilot.errorHandling.fix allow
# 設定を元に戻す
azd config unset copilot.errorHandling.category
copilot.errorHandling.categoryに指定できる値はexplain・guidance・troubleshoot・fix・skipの5種類です。fix allowを設定すると、Copilotが修正を適用して失敗したコマンドを自動で再実行します。
使用に必要な環境
この機能を使うには次の3つが必要です。
- azd 1.23.11以降 —
azd versionで確認、古ければazd updateで更新 - GitHub Copilotのサブスクリプション — Individual・Business・Enterpriseのいずれか
- GitHub CLI(gh) — azdがログイン状態を自動確認し、未ログインであれば案内が出る
Bicepやazure.yamlの書き方を知らなくても、既存のコードベースからAzureへのデプロイ構成を生成できます。新規プロジェクトを一から立ち上げる場合も同様に、適切なインフラをCopilotが提案します。