このクイック スタートでは、Contoso Resource Tagger という名前Azure Developer CLI (azd) 拡張機能のサンプルを作成します。
azd開発者拡張機能を使用して、Go プロジェクトをスキャフォールディングし、カスタム コマンドを追加して、拡張機能をローカルで実行します。 作成するサンプル拡張機能は、機能の追加、 azdとの通信、モデル コンテキスト プロトコル (MCP) サーバーの追加、作業の公開の方法を示す、このセクションの他の記事の開始点です。
開始する前に拡張機能開発の背後にある概念については、「 拡張機能開発の概念」を参照してください。
Note
azd拡張機能フレームワークは一般提供されています。 個々の拡張機能または機能には、独自のプレビュー状態がある場合があります。
前提条件
- Azure Developer CLI をインストールします。
- Go 1.26 以降をインストールします。
- コード エディター (Visual Studio Code など)。
azd には、既定で公式の拡張機能ソースが含まれています。 URL ベースまたはファイル ベースのソース、ローカル開発レジストリ、オプトイン開発レジストリまたは夜間レジストリ、ポータブル .zip バンドルから拡張機能をインストールすることもできます。 詳細については、「 拡張機能の開発の概念」を参照してください。
Tip
azd プロジェクトが拡張機能によって提供されるホスト、プロバイダー、検証、ライフサイクル ハンドラー、またはコマンドに依存している場合は、バージョン制約を使用して、azure.yamlで必要な拡張機能を宣言します。 詳細については、 requiredVersionsを参照してください。
開発者拡張機能をインストールする
azd開発者拡張機能 (microsoft.azd.extensions) には、拡張機能のビルドに使用するazd xコマンドが用意されています。
公式の拡張機能ソースから開発者拡張機能をインストールします。
azd extension install microsoft.azd.extensions拡張機能がインストールされていることを確認します。
azd extension list --installed開発者拡張機能は、
x名前空間の下に一連のコマンドを登録します。azd xを実行して、使用可能なコマンドを確認します。
サンプル拡張機能をスキャフォールディングする
azd x init コマンドを使用して、新しい拡張プロジェクトをスキャフォールディングします。
拡張機能のディレクトリを作成して変更します。
mkdir azd-extensions cd azd-extensionsGit リポジトリを初期化し、初期コミットを作成します。
azd x initコマンドでは、拡張機能フォルダーを git で追跡する必要があります。git init git commit --allow-empty -m "Initial commit"azd x initコマンドを実行して拡張機能をスキャフォールディングします。azd x initメッセージが表示されたら、次の値を指定します。
プロンプト 価値 拡張機能 ID contoso.azd.tagger表示名 Contoso Resource TaggerDescription Standardize and report Azure resource tags for an azd project.名前空間 tagger能力 Custom commandsLanguage Go
このコマンドは拡張機能をスキャフォールディングし、初期バイナリをビルドし、拡張機能をパッケージ化し、ローカル拡張機能ソースに発行して、すぐに使用できるようにローカルにインストールします。
プロジェクト構造を調べる
azd x init コマンドは、次のキー ファイルを含むプロジェクトを生成します。
contoso.azd.tagger/
├── bin/ # Contains built binaries
├── build.ps1 # Windows build script
├── build.sh # Unix build script
├── CHANGELOG.md # Version history and release notes
├── extension.yaml # Extension metadata and capabilities
├── main.go # Entry point for the extension
├── go.mod # Go module definition
└── internal/ # Internal implementation code
最も重要なファイルは次のとおりです。
-
extension.yaml: 拡張機能のメタデータ、機能、およびコマンドを定義します。 詳細については、「 拡張機能マニフェストの定義」を参照してください。 -
main.go: 拡張機能のルート コマンドを実行するエントリ ポイント。 -
build.shbuild.ps1: サポートされているプラットフォーム (Linux、Windows、macOS) ごとに個別のバイナリをコンパイルするクロスプラットフォーム ビルド スクリプト。 -
CHANGELOG.md: バージョン間の変更をドキュメント化し、発行時にリリース ノートを提供します。
カスタム コマンドを追加する
拡張機能の動作を確認する案内応答を出力する show コマンドを追加します。 正確なファイル レイアウトはスターター テンプレートによって異なりますが、パターンは同じです。 Cobra コマンドを定義し、ルート コマンドに登録します。
internal/cmdディレクトリで、次の内容を含むshow.goという名前のファイルを作成します。package cmd import ( "fmt" "github.com/spf13/cobra" ) func newShowCommand() *cobra.Command { return &cobra.Command{ Use: "show", Short: "Displays a greeting from the Contoso Resource Tagger extension.", RunE: func(cmd *cobra.Command, args []string) error { fmt.Println("Hello from the Contoso Resource Tagger extension!") return nil }, } }ルート コマンドにコマンドを登録します。
internal/cmd/root.goファイルで、他のAddCommand関数の後に、ファイルの下部に次の行を追加します。rootCmd.AddCommand(newShowCommand())
拡張機能を実行する
拡張機能を実行する前に、パッケージ化し、ローカルの拡張機能ソースに発行して変更を登録します。
拡張機能をパッケージ化します。
azd x pack拡張機能を発行して登録します。
azd x publish新しいコマンドを実行します。
azd tagger show出力は次の例のようになります。
Hello from the Contoso Resource Tagger extension!
これで、ビルド可能な機能拡張が作成されました。
開発中の変更を監視する
変更後に azd x pack と azd x publish を手動で実行する代わりに、 azd x watch を使用して、開発時に拡張機能を自動的にビルドしてインストールします。
拡張機能ディレクトリからウォッチャーを起動します。
azd x watch2 番目のターミナルで、コマンドを実行して変更を行う際にテストします。
azd tagger show
ウォッチャーを使用する代わりに拡張機能を手動でビルドするには、 azd x buildを実行します。
リソースをクリーンアップする
実験が完了したら、サンプル拡張機能をアンインストールします。
azd extension uninstall contoso.azd.tagger
関連するコンテンツ
サンプル拡張機能を引き続き構築するには、次の記事を参照してください。 各記事は独立しているため、任意の順序で完了できます。