Azure Developer CLI (azd) フック システムは、Bash と PowerShell に加えて、 Python、 JavaScript、 TypeScript、 および .NET をサポートしています。
azd では、ファイル拡張子から言語が自動的に検出され、依存関係が管理され、追加の構成なしでスクリプトが実行されます。
フックを使用すると、プロビジョニング前、デプロイ後など、 azd ライフサイクルの重要なポイントでカスタム ロジックを実行できます。 使用可能なフック イベントや構成オプションなど、フックに関する一般的な情報については、「 コマンドとイベント フックを使用してワークフローをカスタマイズする」を参照してください。
前提条件
- azd をインストールする
- 選択した言語のランタイムがコンピューターにインストールされている必要があります。
- Python: Python 3.x
- JavaScript/TypeScript: Node.js
- .NET: .NET SDK
言語検出
azure.yamlのスクリプト ファイルにフックをポイントし、azdファイル拡張子から言語を推測します。 拡張機能があいまいまたは不足している場合は、 kind フィールドを使用して言語を明示的に指定します。
hooks:
preprovision:
run: ./hooks/setup.py
kind: python # explicit — overrides extension inference
Pythonのフック
Python フックを記述するには、 .py ファイルを作成し、 azure.yamlで参照します。 スクリプトまたは親ディレクトリと同じディレクトリに requirements.txt または pyproject.toml を配置します。
azd スクリプトの場所からディレクトリ ツリーをウォークアップして、最も近いプロジェクト ファイルを見つけ、仮想環境を作成し、依存関係をインストールして、スクリプトを実行します。
ディレクトリ構造の例
hooks/
├── setup.py
└── requirements.txt
構成例
hooks:
preprovision:
run: ./hooks/setup.py
Python 固有の構成
既定の仮想環境名をオーバーライドするには、 config ブロックを使用します。
hooks:
preprovision:
run: ./hooks/setup.py
config:
virtualEnvName: .venv # override default naming
JavaScript と TypeScript のフック
JavaScript または TypeScript フックを記述するには、 .js または .ts ファイルを作成し、 azure.yamlで参照します。 スクリプトまたは親ディレクトリと同じディレクトリに package.json を配置します。
azd は npm install (または config ブロックで指定されたパッケージ マネージャー) を実行し、スクリプトを実行します。 TypeScript スクリプトは、コンパイル 手順やnpx tsx必要なく、tsconfig.json経由で実行されます。
ディレクトリ構造の例
hooks/
├── seed.ts
└── package.json
構成例
hooks:
postdeploy:
run: ./hooks/seed.ts
JavaScript と TypeScript の構成
優先パッケージ マネージャーを指定するには、 config ブロックを使用します。
hooks:
postdeploy:
run: ./hooks/seed.ts
config:
packageManager: pnpm # npm | pnpm | yarn
.NET フック
.NET フックでは、次の 2 つのモードがサポートされています。
-
プロジェクト モード: スクリプトまたは親ディレクトリと同じディレクトリに
.csproj、.fsproj、または.vbprojが存在する場合、azdはdotnet restore実行され、自動的にdotnet buildされます。 -
単一ファイル モード: .NET 10 以降では、スタンドアロン
.csファイルはプロジェクト ファイルなしでdotnet run script.cs経由で直接実行されます。
ディレクトリ構造の例
hooks/
├── migrate.cs
└── migrate.csproj # optional — omit for single-file mode on .NET 10+
構成例
hooks:
postprovision:
run: ./hooks/migrate.cs
.NET 固有の構成
config ブロックを使用して、ビルド構成とターゲット フレームワークを指定します。
hooks:
postprovision:
run: ./hooks/migrate.cs
config:
configuration: Release # Debug | Release
framework: net10.0 # target framework
作業ディレクトリをオーバーライドする
dir フィールドを使用して、フックの作業ディレクトリを設定します。 この構成は、プロジェクト ルートがスクリプトの場所と異なる場合に便利です。
hooks:
preprovision:
run: main.py
dir: hooks/preprovision
言語と形式の組み合わせ
同じ azure.yaml ファイル内のフックごとに異なる言語を使用します。 プラットフォーム固有のオーバーライドと複数言語フックを組み合わせることもできます。
hooks:
preprovision:
run: ./hooks/setup.py
postdeploy:
run: ./hooks/seed.ts
postprovision:
run: ./hooks/migrate.cs
predeploy:
windows:
run: ./hooks/build.ps1
posix:
run: ./hooks/build.sh
関連するコンテンツ
ヘルプを要求する
Azure Developer CLI のバグの報告、ヘルプの要求、または新機能の提案の方法については、トラブルシューティングとサポートページを参照してください。