azure-validate
作成者 microsoftazure-validate は、Azure 向けのデプロイ前検証スキルです。構成、Infrastructure as Code(Bicep や Terraform)、Azure Developer CLI (azd) プロジェクト、権限、リージョン、ポリシーをチェックし、本番デプロイを実行する前に問題を発見します。
概要
azure-validate とは?
azure-validate は、Azure アプリケーションとインフラに対して、デプロイ前の詳細なプリフライトチェックを行うためのデプロイ検証スキルです。azure-prepare が作成した承認済みのデプロイ計画を読み込み、その内容に基づいて構成、Infrastructure as Code(Bicep や Terraform)、Azure Developer CLI (azd) のワークフロー、Azure CLI (azcli) スクリプト、ポリシー、リージョン、必要な権限などを検証します。
スキルとしてはワークフローの「デプロイフェーズ」に属しますが、実際の動きは Azure 環境に対する自動テストスイートに近いイメージです。計画が安全に実行できるか、アプリが本当にデプロイ準備完了の状態かを確認するのに役立ちます。
このスキルを使うべきタイミング
次のような場面で azure-validate を利用してください。
- アプリとインフラがデプロイ可能な状態かを確認したいとき
azure.yamlや Bicep テンプレートを、azd provisionやazd deploy実行前に検証したいとき- Terraform や生の Azure CLI スクリプトに対してデプロイ前チェックを行いたいとき
- サブスクリプション、リージョン、クォータの選定が妥当か検証したいとき
- 予定しているリソースが Azure Policy に準拠しているか確認したいとき
- よくある Azure CLI や IaC のバリデーションエラーを早期に検出したいとき
- CI/CD パイプラインでデプロイ失敗が続く原因を切り分けたいとき
特に次の順番で組み込むと効果的です。
azure-prepare → azure-validate → azure-deploy
azure-validate の対象ユーザー
azure-validate は次のようなユーザーを想定しています。
- Azure 上でアプリを構築しているバックエンド/クラウド開発者
- 安定したデプロイに責任を持つ DevOps / プラットフォームエンジニア
- インフラ管理に Bicep、Terraform、azd、azcli を標準採用しているチーム
- 一貫した自動デプロイ前チェックを CI/CD に組み込みたい担当者
複数環境(dev/test/prod)のデプロイを頻繁に管理している場合や、組織全体のポリシーやリージョンルールへの準拠が求められる場合、このスキルは再利用可能な検証レイヤーとして機能します。
解決できる課題
azure-validate は、次のような問題を事前に検出し、デプロイ失敗や一部失敗を減らします。
azure.yamlや IaC ファイルの不足/誤った構成- あるサービスに対してサポートされていない、または設定不備のある Azure リージョン
- デプロイをブロックする Azure Policy 違反
- 認証や権限の問題(例: 必要なロール不足)
- Bicep やテンプレートに対する、よくある Azure CLI のバリデーションエラー
- azd、azcli、Bicep、Terraform 間でのインフラ定義の不整合
これらの問題を、本番やパイプラインの終盤で初めて気付くのではなく、検証フェーズの段階で明示的に洗い出し、対応方法のリファレンスやレシピと合わせて把握できます。
azure-validate が不向きなケース
このスキルは、次のような用途向けではありません。
- Azure 以外のデプロイ(他クラウドやオンプレのみ)
- デプロイ後のモニタリング、ヘルスチェック、オブザーバビリティ
- アプリケーションレベルのテスト(ユニットテスト、結合テスト、UI テストなど)
azure-prepareが生成した計画なしに行う単発の手動デプロイ
Infrastructure as Code や構造化されたプランファイル(azure-prepare が生成する .azure/plan.md など)を使っていない場合、azure-validate のメリットを十分に得ることはできません。
使い方
1. インストールとセットアップ
azure-validate をスキルに追加する
スキルは microsoft/azure-skills リポジトリからインストールします。
npx skills add https://github.com/microsoft/azure-skills --skill azure-validate
これで、azure-validate のワークフローがエージェントやツール環境から利用できるようになります。
ワークフロー順序の前提
azure-validate を実行する前に、次の条件を満たしている必要があります。
azure-prepareを正常に実行済みであること- ステータスが
Approved以上の.azure/plan.mdファイルが存在すること
サポートされるワークフローは、次の順序に厳密に従います。
azure-prepare → azure-validate → azure-deploy
.azure/plan.md が存在しない、または承認されていない場合は、一度処理を止めて先に azure-prepare を実行してください。
2. 主要なトリガーとルールを理解する
主なトリガー
次のようなときに azure-validate を実行します。
- アプリがデプロイ可能な状態か確認したい
azure.yamlや Bicep テンプレートを検証したい- リソースのプロビジョニング前にプリフライトチェックを行いたい
- IaC や CLI のステップが原因と思われる Azure デプロイエラーを切り分けたい
守るべきコアルール
スキルのガイダンスおよび共通の global-rules リファレンスに基づき、次を徹底します。
- azure-validate は必ず
azure-prepare実行後、実際のデプロイ前にのみ行う。 - 検証エラーはブロッキング扱いとし、問題解消前に
azure-deployに進まない。 - 削除・上書き・大きなコストやセキュリティ影響を伴うなど、破壊的または影響の大きい操作を行う場合は、
references/global-rules.mdに記載のとおりask_userを使って必ずユーザーに確認を取る。 - Azure サブスクリプションやリージョンを決め打ちしない。必要な場面では必ずユーザーに確認する。
3. インフラ別の検証レシピに従う
このスキルには、references/recipes/ 配下に各種インフラ向けの検証レシピが用意されています。
Azure Developer CLI (azd) プロジェクト向け
- まずは
references/recipes/azd/README.mdから確認します。 - 環境構成の検証には
references/recipes/azd/environment.mdを利用します。 azdのバリデーション/デプロイでよくある問題の原因と対処法はreferences/recipes/azd/errors.mdを参照します。- .NET Aspire ベースのプロジェクトの場合は、追加チェックとして
references/recipes/azd/aspire.mdを確認します。
これらのガイドに従うことで、azd 実行前に azure.yaml、アプリ間の接続、環境設定などが妥当かどうかを確認できます。
Azure CLI (azcli) + Bicep ワークフロー向け
- 包括的な AZCLI バリデーションチェックリストは
references/recipes/azcli/README.mdを参照します。ここでは次のような項目を確認できます。- Azure CLI のインストール確認(
az version) - ログインとサブスクリプション設定
- Bicep のコンパイル(
az bicep build) - テンプレートの検証や what-if プレビューの実行
- Azure CLI のインストール確認(
references/recipes/azcli/errors.mdでは、トークン問題、MFA、認可エラー、テンプレート検証失敗など、よくあるazエラーメッセージへの対処を一覧できます。
この組み合わせにより、Azure CLI 主導の Bicep デプロイを段階的に検証する具体的な手順が得られます。
Bicep 中心のインフラ向け
- Bicep 固有の検証ワークフローは
references/recipes/bicep/README.mdを参照します。 - 代表的な Bicep の検証エラーと解決方法は
references/recipes/bicep/errors.mdにまとめられています。
ローカル開発フローや CI パイプラインにこれらのチェックを組み込むことで、本格的なデプロイを行う前にテンプレートやパラメーターの妥当性を保証できます。
Terraform ベースのデプロイ向け
- Terraform の plan / apply ステップと azure-validate の整合を取るには、
references/recipes/terraform/README.mdを参照します。 references/recipes/terraform/errors.mdでは、Terraform 側の検証エラーや Azure 側の認可エラーとその対処方法を確認できます。
これらのレシピにより、任意の環境で terraform apply を実行する前に、Terraform のインフラ定義と Azure アカウント設定を検証できます。
4. ポリシー、リージョン、クォータの準備状況を検証する
Azure Policy の検証
references/policy-validation.md をガイドとして、計画中のデプロイがサブスクリプションに割り当てられている Azure Policy に準拠しているか確認します。
典型的な流れは次のとおりです。
-
現在のサブスクリプション ID を取得します。
az account show --query id -o tsv -
リファレンスの手順に従って Azure policy MCP 連携を使い、そのサブスクリプションに適用されているポリシーを一覧・確認します。
-
禁止されている SKU、必須タグの欠如、制限されたリソース種別、ロケーションブロック、ネットワークセキュリティルールなどのポリシー違反を解消します。
ポリシー準拠が確認できてから、はじめてデプロイに進むようにします。
リージョンの利用可否とクォータチェック
references/region-availability.md を利用して、アーキテクチャに含まれる全サービスが指定リージョンでサポートされているか、クォータが十分かをクロスチェックします。
特に次のような、リージョンの制約が大きいサービスでは重要です。
- Azure Static Web Apps
- Azure OpenAI(モデルごとに異なるリージョンサポート)
リファレンスで紹介されているガイドラインや、クォータ・リージョン利用可否を確認できる MCP ツールを活用し、サポート対象外のリージョンやキャパシティ不足によるデプロイ失敗を避けてください。
5. アプリおよび Functions の検証例
Aspire + Azure Functions のシークレットストレージ
.NET Aspire と Azure Functions を併用している場合は、references/aspire-functions-secrets.md を確認してください。
- アプリホストが
AddAzureFunctionsProjectを利用し、ID ベースのストレージ構成になっているか検出します。 AzureWebJobsSecretStorageTypeが正しく構成されているかを確認します。- 指示に従い
.WithEnvironment("AzureWebJobsSecretStorageType", "Files")を含めるなど、推奨される修正をプロビジョニング前に適用します。
この検証ステップを azd provision 実行前に行うことで、サーバーレスデプロイをブロックしがちな Functions シークレットストレージ周りの典型的な問題を回避できます。
6. CI/CD パイプラインで azure-validate を使う
azure-validate 自体はエージェントスキルとして作成されていますが、そのステップやリファレンスは自動化パイプラインにも適しています。
- レシピをそのままパイプラインのステージとして分割し、たとえばデプロイジョブの前に Bicep 検証や what-if を実行します。
- レシピやポリシーチェックで検出された検証エラーがあれば、その時点でパイプラインを失敗させます。
references/*ファイルのリンクや抜粋をパイプラインログに出力し、開発者が原因と対処方法をすぐに確認できるようにします。
これにより、azure-validate をすべての環境に共通するデプロイ前ゲートとして活用できます。
7. 詳細なカスタマイズのために確認すべきファイル
azure-validate を自分たちのワークフローに合わせて調整したい場合は、リポジトリ内の次の主要ファイルを開いてください。
SKILL.md– スキルの公式な説明。トリガー、ルール、ステップ順序を定義しています。references/global-rules.md– 破壊的操作、サブスクリプション/リージョンの扱いに関する必須グローバルルール。references/policy-validation.md– ポリシー検証の詳細な使い方。references/region-availability.md– 制約のあるサービス向けのリージョン/クォータのガイダンス。references/aspire-functions-secrets.md– Aspire + Azure Functions のシークレットストレージ検証。references/recipes/README.md– azd、azcli、Bicep、Terraform 向け検証レシピのインデックス。
これらを組み合わせて利用し、ワークフロー全体を丸ごとコピーするのではなく、自分たちのプロセスに最適な形で取り入れてください。
FAQ
azure-validate は必須ですか?実行せずにデプロイしても構いませんか?
このスキルは、azure-prepare と azure-deploy の間で実行されることを前提に設計されています。技術的には azure-validate を実行せずにデプロイすることも可能ですが、公式なガイダンスでは必須ゲートとして扱うことを推奨しています。スキップすると、デプロイ失敗、ポリシーブロック、リージョンや権限の問題に遭遇するリスクが高まります。
先に azure-prepare を実行する必要がありますか?
はい。azure-validate は azure-prepare が既に実行されており、ステータスが Approved 以上の .azure/plan.md が存在することを前提にしています。このファイルが存在しない、または承認されていない場合は、azure-validate を使う前に必ず azure-prepare を実行してください。
azure-validate はどのインフラツールに対応していますか?
azure-validate は次のツール向けにレシピとガイダンスを提供しています。
- Azure Developer CLI (azd)
- Azure CLI (azcli) + Bicep テンプレート
- Bicep ベースのインフラ
- Terraform
自分たちのスタックに合うレシピを references/recipes/ 配下から選択できます。
CI/CD パイプラインでも azure-validate を使えますか?
はい。エージェントスキルとして作成されていますが、その検証ステップ、エラーガイド、ポリシー/リージョンチェックは CI/CD にも適しています。GitHub Actions や Azure DevOps などのパイプラインにレシピと同等のチェックを組み込み、検証が成功した場合のみデプロイを進めるようにできます。
azure-validate は Azure リソースに変更を加えますか?
azure-validate がフォーカスするのは検証とプリフライトチェックです。ガイダンスでは、破壊的または影響の大きい操作を行う場合、ask_user と global-rules に基づく明示的なユーザー確認を必須としています。典型的な使い方では、リソースを変更するのではなく、状態の確認・検証・計画立案を行うためのスキルとして利用します。
azure-validate は Azure Policy やガバナンスにどう役立ちますか?
このスキルには references/policy-validation.md が含まれており、サブスクリプションに設定されているポリシーの確認方法と、デプロイ前にポリシー準拠状況をチェックする手順が示されています。これに従うことで、禁止されたリソース種別や SKU、タグ、リージョンなどを事前に検出し、組織のルールに沿ったデプロイを行うことができます。
Azure Static Web Apps や Azure OpenAI のようなリージョン依存サービスはどのように扱いますか?
references/region-availability.md に、リージョンサポートが限定されるサービスがまとめられており、公式ドキュメントやクォータ/利用可否チェック用 MCP ツールへのリンクも記載されています。azure-validate では、このリファレンスを参照し、必要なサービスがすべてサポートされているリージョンだけを提案・利用することを前提としています。
azure-validate はローカル開発環境でも使えますか?
はい。Azure へのデプロイを前提としており、azure-prepare でプランを生成しているのであれば、開発(dev)やテスト(test)環境に対しても azure-validate を実行できます。ステージングや本番に進む前に問題を早期に検出する手段として有効です。
初めて azure-validate を導入する際は、どこから着手すべきですか?
スキルを追加したら、まず SKILL.md を読んでルールと全体の流れを把握し、そのうえで references/recipes/README.md から自分のインフラツール(azd、azcli、Bicep、Terraform)に合うレシピを選択してください。そのレシピと、ポリシーおよびリージョン関連のガイドを組み合わせることで、自分たちのワークフローの中に azure-validate を自然に組み込めます。
