すべてのプロダクト
Search
ドキュメントセンター

Container Compute Service:ACR へのイメージプッシュ後に自動でイメージキャッシュを作成する

最終更新日:Apr 25, 2026

Alibaba Cloud EventBridge を使用することで、Container Registry (ACR) Enterprise Edition インスタンスにイメージをプッシュするたびに、Container Compute Service (ACS) でイメージキャッシュの作成を自動的にトリガーできます。イメージキャッシュを使用すると、イメージをゼロからプルする必要がなくなり、Pod の起動時間が大幅に短縮されます。

仕組み

このソリューションでは、イベント駆動型のパイプラインで次の 3 つの Alibaba Cloud サービスを連携させます。

  1. ACR Enterprise Edition がイメージのプッシュを検出し、cr:Artifact:PushCompleted イベントを送信します。

  2. EventBridge がデフォルトイベントバス上でイベントを受信し、イベントペイロードから抽出したパラメーターを使用して ACS の CreateImageCache API を呼び出します。

  3. ACS が新しくプッシュされたイメージから自動的にイメージキャッシュを作成し、高速な Pod 起動を可能にします。

イメージのプッシュごとに 1 回の CreateImageCache API 呼び出しがトリガーされます。頻繁にイメージをプッシュする場合は、発生するイメージキャッシュのストレージコストおよび EventBridge のイベント配信料金にご注意ください。

前提条件

作業を開始する前に、次のリソースが準備されていることを確認してください。

リソース

説明

Container Registry Enterprise Edition インスタンス

Personal Edition インスタンスはサポートされていません。

VPC および vSwitch

後ほど使用するために vSwitch ID を記録しておいてください。

セキュリティグループ

VPC 上記の VPC に属している必要があります。後ほど使用するために セキュリティグループ ID を記録しておいてください。

ステップ 1:ACR インスタンスの設定

  1. Container Registry コンソール にログインします。

  2. 左側のナビゲーションウィンドウで、[インスタンス] をクリックします。

  3. [インスタンス] ページで、管理対象の Enterprise Edition インスタンスをクリックします。

  4. 左側のナビゲーションウィンドウで、リポジトリ > アクセス制御 を選択します。VPC タブで、VPC の追加 をクリックし、事前に準備した VPC を追加します。

  5. 左側のナビゲーションウィンドウで、インスタンス > インシデント通知 を選択します。ルールの作成 をクリックし、次の設定を行います。

    • イベントタイプcr:Artifact:PushCompleted を選択します。

    • 適用範囲:モニター対象のリポジトリを選択するか、すべてのリポジトリを選択します。

    • インシデント通知:DingTalk、HTTP、または HTTPS を選択します。

      通知エンドポイントは機能していなくても問題ありません。この手順は、EventBridge がイベントをキャプチャできるようにするために必要です。

ステップ 2:RAM ポリシーの作成

ACS の CreateImageCache API を呼び出す権限を付与するカスタムポリシーを作成します。

  1. RAM 管理者として RAM コンソール にログインします。

  2. 左側のナビゲーションウィンドウで、[権限] > [ポリシー] を選択します。

  3. [ポリシー] ページで、[ポリシーの作成] をクリックします。

  4. [ポリシーの作成] ページで、[JSON エディター] をクリックします。

  5. 次のポリシー詳細を貼り付け、[OK] をクリックします。

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "acc:CreateImageCache",
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Action": "ram:CreateServiceLinkedRole",
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "ram:ServiceName": "imc.acc.aliyuncs.com"
            }
          }
        }
      ]
    }
  6. ポリシー名と任意の説明を入力し、[OK] をクリックします。

ステップ 3:EventBridge の設定

ステップ 1 の実行中に、EventBridge は デフォルト イベントバス上にルールを自動的に作成しました。このステップでは、このルールを編集して、ACS の CreateImageCache API を呼び出すイベントターゲットを追加します。

  1. EventBridge コンソール にログインします。

  2. 上部のナビゲーションバーで、ご利用の VPC と同じリージョンを選択します。

  3. 左側のナビゲーションウィンドウで、[Event Buses] をクリックします。

  4. デフォルト イベントバスの行で、操作 列の イベントルール をクリックします。ステップ 1 で作成したイベントルールを見つけ、イベントターゲットの編集 をクリックし、次に ターゲットの追加 をクリックします。

    パラメーター

    サービスタイプ

    acs.openapi.acc

    API タイプ

    CreateImageCache

    RegionId

    テンプレート を選択します:

    • 変数

      {
        "InstanceName": "$.data.InstanceName",
        "RegionId": "$.data.RegionId",
        "RepoName": "$.data.RepoName",
        "RepoNamespaceName": "$.data.RepoNamespaceName",
        "Tag": "$.data.Tag"
      }
    • テンプレート

      ${RegionId}

    ImageCacheName

    テンプレート を選択します:

    • 変数

      {
        "InstanceName": "$.data.InstanceName",
        "RegionId": "$.data.RegionId",
        "RepoName": "$.data.RepoName",
        "RepoNamespaceName": "$.data.RepoNamespaceName",
        "Tag": "$.data.Tag"
      }
    • テンプレート

      ${RepoNamespaceName}-${RepoName}-${Tag}

    Images

    テンプレート を選択します:

    • 変数

      {
        "InstanceName": "$.data.InstanceName",
        "RegionId": "$.data.RegionId",
        "RepoName": "$.data.RepoName",
        "RepoNamespaceName": "$.data.RepoNamespaceName",
        "Tag": "$.data.Tag"
      }
    • テンプレート

      ${InstanceName}-registry-vpc.${RegionId}.cr.aliyuncs.com/${RepoNamespaceName}/${RepoName}:${Tag}

    NetworkConfig

    • VSwitchIds:事前に準備した vSwitch ID を入力します。

    • SecurityGroupId:事前に準備したセキュリティグループ ID を入力します。

    ロール設定

    新しいロールの作成を許可 をクリックすると、EventBridge により AliyunEventBridgeOpenApi-****** という名前のロールが作成されます。その後、RAM 管理者として RAM コンソール にログインし、該当のロールを検索して、手順 2 で作成したカスタムポリシーをアタッチしてください。

    再試行ポリシーとデッドレターキュー

    指数減衰再試行 および フォールトトレランスの許可 を選択します。

ステップ 4:結果の確認

ACR Enterprise Edition インスタンスにイメージをプッシュし、ACS コンソール にログインします。左側のナビゲーションウィンドウで イメージキャッシュ をクリックし、<名前空間>-<リポジトリ>-<タグ> 形式の名前で新しいイメージキャッシュが表示されることを確認します。

参考資料