Azure Container Registry webhook の使用

Docker Hub で公開 Docker イメージを格納するように、Azure コンテナー レジストリではプライベート Docker コンテナー イメージを格納および管理します。 また、Kubernetes にアプリケーションをデプロイするパッケージ形式である Helm chart (プレビュー) のリポジトリをホストすることもできます。 レジストリ リポジトリで特定のアクションが発生した場合に、webhook を使用してイベントをトリガーできます。 webhook では、レジストリ レベルでイベントに応答したり、特定のリポジトリ タグに範囲を絞ったりできます。 geo レプリケートされたレジストリを使用して、特定のリージョン レプリカ内のイベントに応答するように各 webhook を構成します。

Webhook のエンドポイントはレジストリからパブリックにアクセスできる必要があります。 セキュリティで保護されたエンドポイントに対して認証されるように、レジストリの Webhook 要求を構成できます。

webhook 要求の詳細については、「Azure Container Registry webhook スキーマ リファレンス」を参照してください。

前提条件

  • Azure Container Registry - コンテナー レジストリを Azure サブスクリプションで作成します。 たとえば、Azure Portal または Azure CLI を使用します。 Azure Container Registry サービス レベルには Webhook のさまざまなクォータがあります。
  • Docker CLI - ローカル コンピューターを Docker ホストとして設定し、Docker CLI コマンドにアクセスするには、Docker エンジンをインストールします。

Webhook の作成 - Azure portal

  1. Azure portal にサインインします。
  2. webhook を作成するコンテナー レジストリに移動します。
  3. [サービス][Webhook] を選択します。
  4. webhook ツールバーで [追加] を選択します。
  5. 次の情報を利用して、 [webhook の作成] フォームを完成させます。
説明
Webhook 名 Webhook に付与する名前。 使用できる文字は英数字のみです。文字数は 5 ~ 50 文字にする必要があります。
場所 geo レプリケートされたレジストリの場合は、レジストリ レプリカの Azure リージョンを指定します。
サービス URI Webhook が POST 通知を送信する URI。
カスタム ヘッダー POST 要求と共に渡すヘッダー。 "キー: 値" の形式にする必要があります。
トリガー アクション Webhook をトリガーするアクション。 アクションには、イメージのプッシュ、イメージの削除、Helm chart のプッシュ、chart の削除、およびイメージの検疫などがあります。 Webhook をトリガーするアクションを 1 つ以上選択できます。
Status Webhook の作成後の状態。 既定で有効です。
Scope Webhook が動作するスコープです。 指定しない場合、スコープはレジストリ内のすべてのイベントです。 "リポジトリ:タグ" または "リポジトリ:*" (あるリポジトリ以下のすべてのタグの場合) という形式を使用して、リポジトリまたはタグに指定できます。

Webhook フォームの例 :

Azure portal の ACR Webhook 作成 UI のスクリーンショット。

Webhook の作成 - Azure CLI

Azure CLI を使用して Webhook を作成するには、az acr webhook create コマンドを使用します。 次のコマンドは、レジストリ mycontainerregistry 内のすべてのイメージの delete イベントに対して Webhook を作成します。

az acr webhook create --registry mycontainerregistry --name myacrwebhook01 --actions delete --uri http://webhookuri.com

Webhook をテストする

Azure portal

Webhook を使用する前に、 [Ping] ボタンを使ってテストできます。 Ping を実行すると、指定されたエンドポイントに一般的な POST 要求が送信され、応答がログに記録されます。 ping 機能を使用して、webhook が正しく構成されていることを確認できます。

  1. テストする Webhook を選択します。
  2. 上部のツールバーで、 [Ping] を選択します。
  3. [HTTP の状態] 列でエンドポイントの応答を確認します。

Azure Portal の ACR webhook の作成の UI

Azure CLI

Azure CLI を使用して ACR Webhook をテストするには、az acr webhook ping コマンドを使用します。

az acr webhook ping --registry mycontainerregistry --name myacrwebhook01

結果を表示するには、az acr webhook list-events コマンドを使用します。

az acr webhook list-events --registry mycontainerregistry08 --name myacrwebhook01

Webhook の削除

Azure portal

Azure Portal で webhook を選択してから [削除] ボタンをクリックすると、各 webhook を削除できます。

Azure CLI

az acr webhook delete --registry mycontainerregistry --name myacrwebhook01

次のステップ

Webhook スキーマ リファレンス

Azure Container Registry によって出力される JSON イベント ペイロードの形式とプロパティについて詳しくは、Webhook のスキーマ リファレンスをご覧ください。

Azure Container Registry webhook スキーマ リファレンス

Event Grid のイベント

この記事で説明したネイティブ レジストリ Webhook イベントだけでなく、Azure Container Registry は Event Grid に対してイベントを生成できます。

クイック スタート: Event Grid へのコンテナー レジストリ イベントの送信