すべての Azure Developer CLI (azd) 拡張機能には、そのメタデータと機能を記述するextension.yaml マニフェストが含まれています。
azd は、拡張機能レジストリ内のこのメタデータを使用して、ユーザーがあなたの拡張機能を見つけ、インストールし、理解できるようにしています。 この記事では、サンプル拡張機能の作成クイックスタートの Contoso Resource Tagger サンプル拡張機能を使用して、マニフェストのプロパティを説明します。 同じ概念を任意の拡張機能に適用できます。
Note
azd 拡張機能は現在ベータ版です。
マニフェストのプロパティ
extension.yaml マニフェストでは、次のプロパティがサポートされています。
必須プロパティ
すべてのマニフェストには、次のプロパティが含まれている必要があります。
| 財産 | Description |
|---|---|
id |
拡張機能の一意の識別子(contoso.azd.taggerのようなもの)。 |
version |
MAJOR.MINOR.PATCH形式のセマンティック バージョン。 |
displayName |
人間が判読できる拡張機能の名前。 |
description |
拡張機能の詳細な説明。 |
各マニフェストには、 capabilities または dependenciesも含める必要があります。 コマンドまたはプロバイダーを提供する拡張機能は、 capabilitiesを宣言します。
拡張機能パックは、代わりにdependenciesを宣言します。
省略可能なプロパティ
マニフェストでは、次の省略可能なプロパティもサポートされています。
| 財産 | Description |
|---|---|
namespace |
拡張機能のコマンドをグループするコマンド名前空間 ( taggerなど)。 |
entryPoint |
エントリ ポイントとして機能する実行可能ファイルまたはスクリプト。 |
language |
goなど、拡張機能が記述されているプログラミング言語。 |
capabilities |
拡張機能の配列。 |
usage |
拡張機能の使用方法に関する手順。 |
examples |
名前、説明、使用法を含む使用例の配列。 |
tags |
分類とフィルター処理のキーワード。 |
dependencies |
この拡張機能が依存するその他の拡張機能。 |
providers |
拡張機能が登録するプロバイダーの一覧。 |
platforms |
プラットフォーム固有のメタデータ。 |
mcp |
モデル コンテキスト プロトコル サーバーの構成。 |
requiredAzdVersion |
azdなど、拡張機能を使用するために必要な>= 1.24.0 バージョンのセマンティック バージョン制約。 |
マニフェストの例
次の例は、Contoso Resource Tagger サンプル拡張機能の extension.yaml マニフェストを示しています。
# yaml-language-server: $schema=https://raw.githubusercontent.com/Azure/azure-dev/refs/heads/main/cli/azd/extensions/extension.schema.json
id: contoso.azd.tagger
namespace: tagger
displayName: Contoso Resource Tagger
description: Standardize and report Azure resource tags for an azd project.
usage: azd tagger <command> [options]
version: 0.1.0
language: go
capabilities:
- custom-commands
examples:
- name: show
description: Displays a greeting from the extension.
usage: azd tagger show
tags:
- tags
- governance
- example
ファイルの上部にある $schema コメントを使用すると、YAML 言語サーバーをサポートするエディターで検証と IntelliSense が有効になります。
機能を宣言する
capabilities配列は、拡張機能でできることを宣言します。
azd は実行時に対応するアクセス許可を付与します。一部のフレームワーク サービスは、一致する機能が宣言されていない場合、アクセス許可エラーで失敗します。 このサンプル拡張機能は、 custom-commandsのみで始まります。
capabilities:
- custom-commands
他の記事で機能を追加するときは、さらに機能を追加します。 たとえば、拡張機能を追加するとlifecycle-eventsが追加され、拡張機能に MCP サーバーを追加すると、mcp-serverが追加されます。 使用可能な機能は次のとおりです。
-
custom-commands: 名前空間の下のazdに、azd tagger showなどの新しいコマンドを追加します。 -
lifecycle-events:azdがpreprovisionやpostdeployなどのイベントを発生させるときに、カスタム ロジックを実行します。 -
mcp-server: AI エージェントが呼び出すことができるモデル コンテキスト プロトコル ツールを公開します。 -
service-target-provider: 既定ではサポートされていないhostazdのカスタム デプロイ ターゲットを追加します。 -
framework-service-provider: 既定では認識されないlanguageazdのビルドとパッケージのサポートを追加します。 -
provisioning-provider:azdがインフラストラクチャをプロビジョニングする方法をカスタム実装に置き換えます。 -
validation-provider:azd検証パイプラインで実行されるチェックを追加します。 -
metadata: ヘルプ出力と IntelliSense に対して、より豊富なコマンドと構成メタデータを提供します。
各機能の詳細と例については、「 拡張機能の追加」を参照してください。
使用例を追加する
examples配列には、拡張機能を使用する一般的な方法が示されています。
azd は、ユーザーが拡張機能に関する詳細を表示するときに、次の例を表示します。
examples:
- name: show
description: Displays a greeting from the extension.
usage: azd tagger show
プロバイダーを登録する
拡張機能がカスタム サービス ターゲットまたはフレームワーク サービスを提供する場合は、拡張機能が提供する内容providers把握できるように、azd セクションで宣言します。
providers:
- name: tagger
type: service-target
description: Deploys tagged resources to Azure.
プラットフォーム固有の構成を追加する
platforms プロパティを使用して、各オペレーティング システムの実行可能ファイル名など、プラットフォーム固有のメタデータを指定します。
platforms:
windows:
executable: tagger.exe
linux:
executable: tagger
darwin:
executable: tagger
依存関係を宣言する
拡張機能は、 dependencies 配列を使用して他の拡張機能に依存できます。 依存関係では、セマンティック バージョン管理の制約がサポートされます。
dependencies:
- id: microsoft.azd.core
version: "^1.0.0"
azd は、各制約を満たす公開されている最高バージョンにインストールまたはアップグレードします。 一般的な制約形式は次のとおりです。
-
^1.0.0: バージョン 1.x.x と互換性があります。 -
~1.2.0: バージョン 1.2.x と互換性があります。 -
>=1.0.0 <2.0.0: バージョン範囲。
拡張機能パックを使用して拡張機能をグループ化する
拡張機能パックは、関連する拡張機能をグループ化して、ユーザーが 1 つのコマンドでインストールできるようにするマニフェストです。 パックは dependencies を宣言しますが、実行可能ファイル、コマンド名前空間、または独自の機能は提供しません。 パックを使用して、製品ファミリやシナリオ バンドルなどの厳選された拡張機能のセットを公開します。
# yaml-language-server: $schema=https://raw.githubusercontent.com/Azure/azure-dev/refs/heads/main/cli/azd/extensions/extension.schema.json
id: contoso.tools
displayName: Contoso Tools Extension Pack
description: Installs the Contoso azd extensions.
version: 0.1.0
dependencies:
- id: contoso.azd.tagger
version: "~0.1.0"
パックをインストールすると、その依存関係がパックと同じ拡張ソースから再帰的にインストールされます。