拡張機能を発行する

Azure Developer CLI (azd) 拡張機能をビルドした後、パッケージ化してレジストリに発行して、他のユーザーがインストールできるようにします。 この記事では、「サンプル拡張機能のビルド」クイック スタートから Contoso Resource Tagger サンプル拡張機能を発行する方法について説明します。 同じ手順を任意の拡張機能に適用できます。

Note

azd拡張機能フレームワークは一般提供されています。 個々の拡張機能または機能には、独自のプレビュー状態がある場合があります。

レジストリを選択する

azd では、公式レジストリ、カスタム URL ベースのレジストリ マニフェスト、ファイル ベースのレジストリ マニフェスト、およびポータブル バンドル ファイルから拡張機能を解決できます。 ユーザーによる拡張機能のインストール方法に一致する配布方法を選択します。

  • 公式レジストリ: azdに付属するレジストリ。 ここで発行するには、azure/azure-dev リポジトリのフォークに pull request を送信します。
  • カスタム URL ベースのレジストリ: チームがパブリックまたはプライベート配布用にホストするリモート レジストリ マニフェスト。
  • ファイル ベースのレジストリ: 開発、テスト、オフライン使用、またはプライベート配布用のローカル レジストリ マニフェスト。
  • 開発レジストリまたは夜間レジストリ: 進行中の作業または自動的に構築されたファースト パーティ拡張機能のオプトイン レジストリ。 開発レジストリ内の拡張機能は署名されておらず、Azure サポートの対象外であり、予告なしに変更または削除される可能性があります。
  • ポータブル バンドル: ユーザーがレジストリ ソースを追加せずにローカル パスまたは HTTPS URL から直接インストールする自己完結型の .zip パッケージ。

この記事では、開発レジストリを使用して、共有テスト ソースへの発行を示します。 ソースとバージョン解決の詳細については、 拡張機能フレームワークのリファレンスを参照してください。

前提条件

  • サンプル拡張機能のビルド クイックスタートで作成した完成済みの拡張機能。
  • パッケージ化と発行に使用するazdコマンドを提供するmicrosoft.azd.extensions開発者拡張機能 (azd x)。 クイックスタートを完了した場合は、既にインストールされています。 それ以外の場合は、 azd extension install microsoft.azd.extensionsを実行します。
  • リリース成果物をホストするGitHub アカウントとリポジトリ。
  • repo スコープを持つGitHub個人用アクセス トークン (PAT)。 release コマンドは、このトークンを使用してGitHubリリースを作成し、成果物をアップロードします。 詳細については、「 個人用アクセス トークンの管理」を参照してください

バージョンと変更ログを更新する

発行する前に、バージョンを更新し、変更を文書化します。

  1. 次のversionで、extension.yaml プロパティ更新します。 変更の種類に基づいて、メジャー、マイナー、またはパッチ番号をインクリメントします。

  2. このバージョンの注目すべき変更で CHANGELOG.md を更新します。 azd では、変更ログを使用してリリース ノートが生成されます。

拡張機能をパッケージ化する

azd x pack コマンドを使用してプラットフォーム固有のバイナリをビルドし、拡張機能をパッケージ化します。

azd x pack

このコマンドは、サポートされている各プラットフォームの成果物を出力ディレクトリに作成します。 azd x release は、これらの成果物をアップロードし、レジストリ メタデータ azd x publish 更新します。 パッケージ化では、スナップショット テストも実行され、発行前に拡張機能が期待どおりに動作することを確認します。

レジストリを介して発行するのではなく、拡張機能を直接配布する場合は、 azd x pack --bundleを含む自己完結型バンドルを作成します。 バンドルは、ファイル パスまたは HTTPS URL からのインストールに必要なレジストリ メタデータと成果物を含む移植可能な .zip です。

拡張機能をリリースする

azd x release コマンドを使用して、GitHub リリースを作成し、パッケージ化された成果物をアップロードします。 コマンドでリリースを作成できるように、GitHub PAT を指定します。

azd x release

このコマンドは、GitHub リポジトリにリリースを作成し、パッケージ化されたバイナリをアップロードして、変更ログからリリース ノートを生成します。 レジストリ ベースの発行では、ダウンロード可能な拡張機能パッケージとしてこれらのリリース 成果物が使用されます。 直接バンドル配布では、GitHubでバンドルをホストする場合を除き、このリリース手順は必要ありません。

Tip

コマンド ラインで渡すのではなく、環境変数に GitHub PAT を格納します。 サポートされている認証オプションについては、 azd x release --help を実行してコマンド ヘルプを確認します。

レジストリに発行する

azd x publish コマンドを使用して、拡張機能レジストリに拡張機能のエントリを追加または更新します。

azd x publish

このコマンドは、ユーザーが開発レジストリから拡張機能を検出してインストールできるように、レジストリ メタデータを更新します。 この手順は、クイック スタートで実行 azd x init ローカル発行とは異なります。このクイック スタートでは、拡張機能がコンピューター上のローカル ソースにのみ登録されます。 azd x publishを実行すると、他のユーザーが拡張機能をインストールできるように、共有開発レジストリが更新されます。

インストールして確認する

発行した後、他のユーザーが開発レジストリから拡張機能をインストールできることを確認します。

  1. 開発レジストリが既に追加されていることを確認します。

    azd extension source add -n dev -t url -l "https://aka.ms/azd/extensions/registry/dev"
    
  2. ID で拡張機能をインストールします。

    azd extension install contoso.azd.tagger
    
  3. コマンドを実行して拡張機能が動作することを確認します。

    azd tagger show
    

公式レジストリに発行する

公式レジストリに発行するには、拡張機能を azure/azure-dev リポジトリに送信します。

  1. azure/azure開発リポジトリをフォークします。
  2. 拡張子のレジストリエントリをフォークの公式レジストリファイルに追加します。
  3. レビュー用の pull request を送信します。

Azure開発者 CLI チームは、統合する前に、品質とセキュリティに関する公式のレジストリ申請を確認します。

公開のトラブルシューティング

次の表に、公開に関する一般的な問題とその解決策を示します。

Issue Resolution
認証エラーでリリースが失敗する GitHub PAT が有効で、repo スコープがあることを確認します。
azd x pack中にスナップショットテストが失敗する テスト出力を確認し、変更が予想される場合はスナップショットを更新して、コマンドを再実行します。
ユーザーが拡張機能を見つけることができません 開発レジストリが追加され、 azd x publish 正常に完了したことを確認します。
発行中のバージョンの競合 versionextension.yamlを新しい未使用のバージョンにインクリメントします。