拡張機能マニフェストを定義する

すべての 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: azdpreprovisionpostdeployなどのイベントを発生させるときに、カスタム ロジックを実行します。
  • 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"

パックをインストールすると、その依存関係がパックと同じ拡張ソースから再帰的にインストールされます。