

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 Amazon ECR 中建立提取快取規則
<a name="pull-through-cache-creating-rule"></a>

對於每個包含您想要在 Amazon ECR 私有登錄檔中快取之映像的上游登錄檔，您必須建立提取快取規則。

對於需要使用秘密進行身分驗證的上游登錄檔，您必須將登入資料存放在 Secrets Manager 秘密中。您可以使用現有的秘密或建立新的秘密。您可以在 Amazon ECR 主控台或 Secrets Manager 主控台中建立 Secrets Manager 秘密。若要使用 Secrets Manager 主控台而非 Amazon ECR 主控台建立 Secrets Manager 秘密，請參閱 [將上游儲存庫登入資料存放在 AWS Secrets Manager 秘密中](pull-through-cache-creating-secret.md)。

## 先決條件
<a name="cache-rule-prereq"></a>
+ 確認您具有適當的 IAM 許可來建立提取快取規則。如需相關資訊，請參閱[將上游登錄檔與 Amazon ECR 私有登錄檔同步所需的 IAM 許可](pull-through-cache-iam.md)。
+ 對於需要使用秘密進行身分驗證的上游登錄：如果您想要使用現有的秘密，請確認 Secrets Manager 秘密符合下列要求：
  + 秘密的名稱開頭為 `ecr-pullthroughcache/`。 AWS 管理主控台 只會顯示具有 `ecr-pullthroughcache/`字首的 Secrets Manager 秘密。
  + 秘密所在的帳戶和區域必須符合提取快取規則所在的帳戶和區域。

## 建立提取快取規則 (AWS 管理主控台)
<a name="pull-through-cache-creating-rule-console"></a>

下列步驟說明如何使用 Amazon ECR 主控台建立提取快取規則和 Secrets Manager 秘密。若要使用 Secrets Manager 主控台建立秘密，請參閱 [將上游儲存庫登入資料存放在 AWS Secrets Manager 秘密中](pull-through-cache-creating-secret.md)。

### 針對 Amazon ECR 公共，Kubernetes 容器登錄檔或 Quay
<a name="w2aac28c27b9b7b1"></a>

1. 在 [https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/) 開啟 Amazon ECR 主控台。

1. 從導覽列選擇要在其中進行私有登錄檔設定的區域。

1. 在導覽窗格中，選擇 **Private registry** (私有登錄檔)、**Pull through cache** (提取快取)。

1. 在 **Pull through cache configuration** (提取快取組態) 頁面上，選擇 **Add rule** (新增規則)。

1. 在**步驟 1：指定來源**頁面上，針對**登錄檔**，從上游登錄檔清單中選擇 Amazon ECR 公共、Kubernetes 或 Quay，接著選擇**下一步**。

1. 在**步驟 2：指定目的地**頁面上，針對 **Amazon ECR 儲存庫字首**，指定快取從來源公有登錄檔提取的映像時要使用的儲存庫命名空間字首，接著選擇**下一步**。預設會填入命名空間，但也可以指定自訂命名空間。

1. 在**步驟 3：檢閱並建立**頁面上，檢閱提取快取規則組態，接著選擇**建立**。

1. 為要建立的每個提取快取重複前面的步驟。系統會針對每個區域分別建立提取快取規則。

### 對於 Docker Hub
<a name="w2aac28c27b9b7b3"></a>

1. 在 [https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/) 開啟 Amazon ECR 主控台。

1. 從導覽列選擇要在其中進行私有登錄檔設定的區域。

1. 在導覽窗格中，選擇 **Private registry** (私有登錄檔)、**Pull through cache** (提取快取)。

1. 在 **Pull through cache configuration** (提取快取組態) 頁面上，選擇 **Add rule** (新增規則)。

1. 在**步驟 1：指定來源**頁面上，針對**登錄檔**選擇 **Docker Hub**、**下一步**。

1. 在**步驟 2：設定身分驗證**頁面上，針對**上游憑證**，您必須將 Docker Hub 的身分驗證憑證儲存在 AWS Secrets Manager 秘密中。您可以指定現有秘密，或使用 Amazon ECR 主控台建立新秘密。

   1. 若要使用現有的秘密，請選擇**使用現有的 AWS 秘密**。針對**秘密名稱**，使用下拉式選單選取您現有的秘密，接著選擇**下一步**。
**注意**  
 AWS 管理主控台 只會顯示使用 `ecr-pullthroughcache/`字首名稱的 Secrets Manager 秘密。秘密也必須位於在其中建立提取快取規則的相同帳戶和區域中。

   1. 若要建立新秘密，請選擇**建立 AWS 秘密**，執行下列動作，接著選擇**下一步**。

      1. 針對**秘密名稱**，指定秘密的描述性名稱。秘密名稱必須含有 1 至 512 個 Unicode 字元。

      1. 針對 **Docker Hub 電子郵件**，指定您的 Docker Hub 電子郵件。

      1. 針對 **Docker Hub 存取字符**，請指定您的 Docker Hub 存取字符。如需建立 Docker Hub 存取字符的詳細資訊，請參閱 Docker 文件中的[建立和管理存取字符](https://docs.docker.com/security/for-developers/access-tokens/)。

1. 在**步驟 3：指定目的地**頁面上，針對 **Amazon ECR 儲存庫字首**，指定快取從來源公有登錄檔提取的映像時要使用的儲存庫命名空間，接著選擇**下一步**。

   預設會填入命名空間，但也可以指定自訂命名空間。

1. 在**步驟 4：檢閱並建立**頁面上，檢閱提取快取規則組態，接著選擇**建立**。

1. 為要建立的每個提取快取重複前面的步驟。系統會針對每個區域分別建立提取快取規則。

### 對於 GitHub Container Registry
<a name="w2aac28c27b9b7b5"></a>

1. 在 [https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/) 開啟 Amazon ECR 主控台。

1. 從導覽列選擇要在其中進行私有登錄檔設定的區域。

1. 在導覽窗格中，選擇 **Private registry** (私有登錄檔)、**Pull through cache** (提取快取)。

1. 在 **Pull through cache configuration** (提取快取組態) 頁面上，選擇 **Add rule** (新增規則)。

1. 在**步驟 1：指定來源**頁面上，針對**登錄檔**選擇 **GitHub Container Registry**、**下一步**。

1. 在**步驟 2：設定身分驗證**頁面上，針對**上游憑證**，您必須將 GitHub Container Registry 的身分驗證憑證儲存在 AWS Secrets Manager 秘密中。您可以指定現有秘密，或使用 Amazon ECR 主控台建立新秘密。

   1. 若要使用現有的秘密，請選擇**使用現有的 AWS 秘密**。針對**秘密名稱**，使用下拉式選單選取您現有的秘密，接著選擇**下一步**。
**注意**  
 AWS 管理主控台 只會顯示使用 `ecr-pullthroughcache/`字首名稱的 Secrets Manager 秘密。秘密也必須位於在其中建立提取快取規則的相同帳戶和區域中。

   1. 若要建立新秘密，請選擇**建立 AWS 秘密**，執行下列動作，接著選擇**下一步**。

      1. 針對**秘密名稱**，指定秘密的描述性名稱。秘密名稱必須含有 1 至 512 個 Unicode 字元。

      1. 針對 **GitHub Container Registry 使用者名稱**，請指定您的 GitHub Container Registry 使用者名稱。

      1. 對於 **GitHub Container Registry 存取字符**，請指定您的 GitHub Container Registry 存取字符。如需建立 GitHub 存取字符的詳細資訊，請參閱 GitHub 文件中的[管理個人存取權字符](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)。

1. 在**步驟 3：指定目的地**頁面上，針對 **Amazon ECR 儲存庫字首**，指定快取從來源公有登錄檔提取的映像時要使用的儲存庫命名空間，接著選擇**下一步**。

   預設會填入命名空間，但也可以指定自訂命名空間。

1. 在**步驟 4：檢閱並建立**頁面上，檢閱提取快取規則組態，接著選擇**建立**。

1. 為要建立的每個提取快取重複前面的步驟。系統會針對每個區域分別建立提取快取規則。

### 對於 Microsoft Azure Container Registry
<a name="w2aac28c27b9b7b7"></a>

1. 在 [https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/) 開啟 Amazon ECR 主控台。

1. 從導覽列選擇要在其中進行私有登錄檔設定的區域。

1. 在導覽窗格中，選擇 **Private registry** (私有登錄檔)、**Pull through cache** (提取快取)。

1. 在 **Pull through cache configuration** (提取快取組態) 頁面上，選擇 **Add rule** (新增規則)。

1. 在**步驟 1：指定來源**頁面上，執行下列動作。

   1. 針對**登錄檔**，選擇 **Microsoft Azure Container Registry**

   1. 針對**來源登錄檔 URL**，指定 Microsoft Azure Container Registry 的名稱，接著選擇**下一步**。
**重要**  
您只需要指定字首，因為會代表您填入 `.azurecr.io` 字尾。

1. 在**步驟 2：設定身分驗證**頁面上，針對**上游憑證**，您必須將 Microsoft Azure Container Registry 的身分驗證憑證儲存在 AWS Secrets Manager 秘密中。您可以指定現有秘密，或使用 Amazon ECR 主控台建立新秘密。

   1. 若要使用現有的秘密，請選擇**使用現有的 AWS 秘密**。針對**秘密名稱**，使用下拉式選單選取您現有的秘密，接著選擇**下一步**。
**注意**  
 AWS 管理主控台 只會顯示使用 `ecr-pullthroughcache/`字首名稱的 Secrets Manager 秘密。秘密也必須位於在其中建立提取快取規則的相同帳戶和區域中。

   1. 若要建立新秘密，請選擇**建立 AWS 秘密**，執行下列動作，接著選擇**下一步**。

      1. 針對**秘密名稱**，指定秘密的描述性名稱。秘密名稱必須含有 1 至 512 個 Unicode 字元。

      1. 對於 **Microsoft Azure Container Registry 使用者名稱**，請指定您的 MMicrosoft Azure Container Registry 使用者名稱。

      1. 對於 **Microsoft Azure Container Registry 存取字符**，請指定您的 Microsoft Azure Container Registry 存取字符。如需建立 Microsoft Azure Container Registry 存取字符的詳細資訊，請參閱 Microsoft Azure 文件中的[建立字符 - 入口網站](https://learn.microsoft.com/en-us/azure/container-registry/container-registry-repository-scoped-permissions#create-token---portal)。

1. 在**步驟 3：指定目的地**頁面上，針對 **Amazon ECR 儲存庫字首**，指定快取從來源公有登錄檔提取的映像時要使用的儲存庫命名空間，接著選擇**下一步**。

   預設會填入命名空間，但也可以指定自訂命名空間。

1. 在**步驟 4：檢閱並建立**頁面上，檢閱提取快取規則組態，接著選擇**建立**。

1. 為要建立的每個提取快取重複前面的步驟。系統會針對每個區域分別建立提取快取規則。

### 對於 GitLab 容器登錄檔
<a name="w2aac28c27b9b7b9"></a>

1. 在 [https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/) 開啟 Amazon ECR 主控台。

1. 從導覽列選擇要在其中進行私有登錄檔設定的區域。

1. 在導覽窗格中，選擇 **Private registry** (私有登錄檔)、**Pull through cache** (提取快取)。

1. 在 **Pull through cache configuration** (提取快取組態) 頁面上，選擇 **Add rule** (新增規則)。

1. 在**步驟 1：指定來源**頁面上，針對登錄檔，選擇 GitLab Container Registry，下一步。

1. 在**步驟 2：設定身分驗證**頁面上，對於**上游憑證**，您必須將 GitLab Container Registry 的身分驗證憑證存放在秘密 AWS Secrets Manager 中。您可以指定現有秘密，或使用 Amazon ECR 主控台建立新秘密。

   1. 若要使用現有的秘密，請選擇**使用現有的 AWS 秘密**。針對**秘密名稱**，使用下拉式選單選取您現有的秘密，接著選擇**下一步**。如需有關使用 Secrets Manager 主控台建立 Secrets Manager 秘密的詳細資訊，請參閱 [將上游儲存庫登入資料存放在 AWS Secrets Manager 秘密中](pull-through-cache-creating-secret.md)。
**注意**  
 AWS 管理主控台 只會顯示使用 `ecr-pullthroughcache/`字首名稱的 Secrets Manager 秘密。秘密也必須位於在其中建立提取快取規則的相同帳戶和區域中。

   1. 若要建立新秘密，請選擇**建立 AWS 秘密**，執行下列動作，接著選擇**下一步**。

      1. 針對**秘密名稱**，指定秘密的描述性名稱。秘密名稱必須含有 1 至 512 個 Unicode 字元。

      1. 針對 **GitLab Container Registry 使用者名稱**，指定您的 GitLab Container Registry 使用者名稱。

      1. 對於 **GitLab Container Registry 存取權杖**，指定您的 GitLab Container Registry 存取權杖。如需建立 GitLab 容器登錄檔存取字符的詳細資訊，請參閱 GitLab 文件中的[個人存取字符](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html)、[群組存取字符](https://docs.gitlab.com/ee/user/group/settings/group_access_tokens.html)或[專案存取字符](https://docs.gitlab.com/ee/user/project/settings/project_access_tokens.html)。

1. 在**步驟 3：指定目的地**頁面上，針對 **Amazon ECR 儲存庫字首**，指定快取從來源公有登錄檔提取的映像時要使用的儲存庫命名空間，接著選擇**下一步**。

   預設會填入命名空間，但也可以指定自訂命名空間。

1. 在**步驟 4：檢閱並建立**頁面上，檢閱提取快取規則組態，接著選擇**建立**。

1. 為要建立的每個提取快取重複前面的步驟。系統會針對每個區域分別建立提取快取規則。

### 對於您 AWS 帳戶中的 Amazon ECR 私有登錄檔
<a name="ecr-to-pull-images-from-other-regions-within-your-account"></a>

1. 在 [https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/) 開啟 Amazon ECR 主控台。

1. 從導覽列中，選擇您要在其中設定私有登錄檔設定的區域。

1. 在導覽窗格中，選擇 **Private registry** (私有登錄檔)、**Pull through cache** (提取快取)。

1. 在 **Pull through cache configuration** (提取快取組態) 頁面上，選擇 **Add rule** (新增規則)。

1. 在**步驟 1：指定上游**頁面上，針對**登錄**檔，選擇 **Amazon ECR Private** 和**此帳戶**。針對**區域**，選取上游 Amazon ECR 登錄檔的區域，然後選擇**下一步**。

1. 在**步驟 2：指定命名空間**頁面上，針對**快取命名空間**，選擇是否建立具有**特定字首**或**無字首**的提取快取儲存庫。如果您選取**特定字首**，則必須指定字首名稱，做為從上游登錄檔快取映像的命名空間的一部分。

1. 針對**上游命名空間**，選擇是否從上游登錄檔中存在**的特定字首**提取。如果**未選取字首**，您可以從上游登錄檔中的任何儲存庫提取 。如果出現提示，請指定上游儲存庫字首，然後選擇**下一步**。
**注意**  
若要進一步了解自訂快取和上游命名空間，請參閱 [自訂 ECR 到 ECR 提取快取的儲存庫字首](pull-through-cache-private-wildcards.md)。

1. 在**步驟 3：檢閱並建立**頁面上，檢閱提取快取規則組態，接著選擇**建立**。

1. 針對您要建立的每個提取快取重複這些步驟。系統會針對每個區域分別建立提取快取規則。

### 對於來自另一個 AWS 帳戶的 Amazon ECR 私有登錄
<a name="w2aac28c27b9b7c13"></a>

1. 在 [https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/) 開啟 Amazon ECR 主控台。

1. 從導覽列選擇要在其中進行私有登錄檔設定的區域。

1. 在導覽窗格中，選擇 **Private registry** (私有登錄檔)、**Pull through cache** (提取快取)。

1. 在 **Pull through cache configuration** (提取快取組態) 頁面上，選擇 **Add rule** (新增規則)。

1. 在**步驟 1：指定上游**頁面上，針對**登錄**檔，選擇 **Amazon ECR 私有**和**跨帳戶**。針對**區域**，選取上游 Amazon ECR 登錄檔的區域。針對**帳戶**，指定上游 Amazon ECR 登錄 AWS 檔的帳戶 ID，然後選擇**下一步**。

1. 在**步驟 2：指定許可**頁面上，針對 **IAM 角色**，選取要用於跨帳戶提取快取存取的角色，然後選擇**建立**。
**注意**  
請務必選取使用在 中建立之許可的 IAM 角色[跨帳戶 ECR 到 ECR 提取快取所需的 IAM 政策](pull-through-cache-private.md#pull-through-cache-private-permissions)。

1. 在**步驟 3：指定命名空間**頁面上，針對**快取命名空間**，選擇是否建立具有**特定字首**或**無字首**的提取快取儲存庫。如果您選取**特定字首**，則必須指定字首名稱，做為從上游登錄檔快取映像的命名空間的一部分。

1. 針對**上游命名空間**，選擇是否從上游登錄檔中存在**的特定字首**提取。如果**未選取字首**，您可以從上游登錄檔中的任何儲存庫提取 。如果出現提示，請指定上游儲存庫字首，然後選擇**下一步**。
**注意**  
若要進一步了解自訂快取和上游命名空間，請參閱 [自訂 ECR 到 ECR 提取快取的儲存庫字首](pull-through-cache-private-wildcards.md)。

1. 在**步驟 4：檢閱並建立**頁面上，檢閱提取快取規則組態，接著選擇**建立**。

1. 針對您要建立的每個提取快取重複這些步驟。系統會針對每個區域分別建立提取快取規則。

### 對於 Chainguard 登錄檔
<a name="w2aac28c27b9b7c15"></a>

1. 在 [https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/) 開啟 Amazon ECR 主控台。

1. 從導覽列選擇要在其中進行私有登錄檔設定的區域。

1. 在導覽窗格中，選擇 **Private registry** (私有登錄檔)、**Pull through cache** (提取快取)。

1. 在 **Pull through cache configuration** (提取快取組態) 頁面上，選擇 **Add rule** (新增規則)。

1. 在**步驟 1：指定來源**頁面上，針對登錄檔，選擇 Chainguard 登錄檔，下一步。

1. 在**步驟 2：設定身分驗證**頁面上，對於**上游憑證**，您必須將 Chainguard Registry 的身分驗證憑證存放在秘密 AWS Secrets Manager 中。您可以指定現有秘密，或使用 Amazon ECR 主控台建立新秘密。

   1. 若要使用現有的秘密，請選擇**使用現有的 AWS 秘密**。針對**秘密名稱**，使用下拉式選單選取您現有的秘密，接著選擇**下一步**。如需有關使用 Secrets Manager 主控台建立 Secrets Manager 秘密的詳細資訊，請參閱 [將上游儲存庫登入資料存放在 AWS Secrets Manager 秘密中](pull-through-cache-creating-secret.md)。
**注意**  
 AWS 管理主控台 只會顯示使用 `ecr-pullthroughcache/`字首名稱的 Secrets Manager 秘密。秘密也必須位於在其中建立提取快取規則的相同帳戶和區域中。

   1. 若要建立新秘密，請選擇**建立 AWS 秘密**，執行下列動作，接著選擇**下一步**。

      1. 針對**秘密名稱**，指定秘密的描述性名稱。秘密名稱必須含有 1 至 512 個 Unicode 字元。

      1. 針對 **Chainguard 登錄檔使用者名稱**，指定您的 Chainguard 登錄檔使用者名稱。

      1. 針對 **Chainguard Registry 提取字符**，指定您的 Chainguard Registry 提取字符。如需建立 Chainguard 登錄檔提取字符的詳細資訊，請參閱 Chainguard 文件中的[使用提取字符進行驗證](https://edu.chainguard.dev/chainguard/chainguard-images/chainguard-registry/authenticating/#authenticating-with-a-pull-token)。

1. 在**步驟 3：指定目的地**頁面上，針對 **Amazon ECR 儲存庫字首**，指定快取從來源登錄檔提取的影像時要使用的儲存庫命名空間，然後選擇**下一步**。

   預設會填入命名空間，但也可以指定自訂命名空間。

1. 在**步驟 4：檢閱並建立**頁面上，檢閱提取快取規則組態，接著選擇**建立**。

1. 為要建立的每個提取快取重複前面的步驟。系統會針對每個區域分別建立提取快取規則。

## 建立提取快取規則 (AWS CLI)
<a name="pull-through-cache-creating-rule-cli"></a>

使用 [create-pull-through-cache-rule](https://docs.aws.amazon.com/cli/latest/reference/ecr/create-pull-through-cache-rule.html) AWS CLI 命令來建立 Amazon ECR 私有登錄檔的提取快取規則。對於需要使用秘密進行身分驗證的上游登錄檔，您必須將登入資料存放在 Secrets Manager 秘密中。若要使用 Secrets Manager 主控台建立秘密，請參閱 [將上游儲存庫登入資料存放在 AWS Secrets Manager 秘密中](pull-through-cache-creating-secret.md)。

提供給每個受支援的登錄檔的下列範例。

### 對於 Amazon ECR Public
<a name="w2aac28c27c11b7b1"></a>

下列範例會為 Amazon ECR Public 登錄檔建立提取快取規則。其會指定 `ecr-public` 的儲存庫字首，這會導致使用提取快取規則建立的每個儲存庫具有 `ecr-public/upstream-repository-name` 的命名規則。

```
aws ecr create-pull-through-cache-rule \
     --ecr-repository-prefix ecr-public \
     --upstream-registry-url public.ecr.aws \
     --region us-east-2
```

### 對於 Kubernetes Container Registry
<a name="w2aac28c27c11b7b3"></a>

下列範例會為 Kubernetes 公有登錄檔建立提取快取規則。其會指定 `kubernetes` 的儲存庫字首，這會導致使用提取快取規則建立的每個儲存庫具有 `kubernetes/upstream-repository-name` 的命名規則。

```
aws ecr create-pull-through-cache-rule \
     --ecr-repository-prefix kubernetes \
     --upstream-registry-url registry.k8s.io \
     --region us-east-2
```

### 對於 Quay
<a name="w2aac28c27c11b7b5"></a>

下列範例會為 Quay 公有登錄檔建立提取快取規則。其會指定 `quay` 的儲存庫字首，這會導致使用提取快取規則建立的每個儲存庫具有 `quay/upstream-repository-name` 的命名規則。

```
aws ecr create-pull-through-cache-rule \
     --ecr-repository-prefix quay \
     --upstream-registry-url quay.io \
     --region us-east-2
```

### 對於 Docker Hub
<a name="w2aac28c27c11b7b7"></a>

下列範例會為 Docker Hub 登錄檔建立提取快取規則。其會指定 `docker-hub` 的儲存庫字首，這會導致使用提取快取規則建立的每個儲存庫具有 `docker-hub/upstream-repository-name` 的命名規則。您必須指定秘密包含 Docker Hub 憑證的完整 Amazon Resource Name (ARN)。

```
aws ecr create-pull-through-cache-rule \
     --ecr-repository-prefix docker-hub \
     --upstream-registry-url registry-1.docker.io \
     --credential-arn arn:aws:secretsmanager:us-east-2:111122223333:secret:ecr-pullthroughcache/example1234 \
     --region us-east-2
```

### 對於 GitHub Container Registry
<a name="w2aac28c27c11b7b9"></a>

下列範例會建立 GitHub Container Registry 的提取快取規則。其會指定 `github` 的儲存庫字首，這會導致使用提取快取規則建立的每個儲存庫具有 `github/upstream-repository-name` 的命名規則。您必須指定秘密包含 GitHub Container Registry 憑證的完整 Amazon Resource Name (ARN)。

```
aws ecr create-pull-through-cache-rule \
     --ecr-repository-prefix github \
     --upstream-registry-url ghcr.io \
     --credential-arn arn:aws:secretsmanager:us-east-2:111122223333:secret:ecr-pullthroughcache/example1234 \
     --region us-east-2
```

### 對於 Microsoft Azure Container Registry
<a name="w2aac28c27c11b7c11"></a>

下列範例會建立 Microsoft Azure Container Registry 的提取快取規則。其會指定 `azure` 的儲存庫字首，這會導致使用提取快取規則建立的每個儲存庫具有 `azure/upstream-repository-name` 的命名規則。您必須指定秘密包含 Microsoft Azure Container Registry 憑證的完整 Amazon Resource Name (ARN)。

```
aws ecr create-pull-through-cache-rule \
     --ecr-repository-prefix azure \
     --upstream-registry-url myregistry.azurecr.io \
     --credential-arn arn:aws:secretsmanager:us-east-2:111122223333:secret:ecr-pullthroughcache/example1234 \
     --region us-east-2
```

### 對於 GitLab 容器登錄檔
<a name="w2aac28c27c11b7c13"></a>

下列範例會建立 GitLab Container Registry 的提取快取規則。其會指定 `gitlab` 的儲存庫字首，這會導致使用提取快取規則建立的每個儲存庫具有 `gitlab/upstream-repository-name` 的命名規則。您必須指定包含 GitLab Container Registry 登入資料之秘密的完整 Amazon Resource Name (ARN)。

```
aws ecr create-pull-through-cache-rule \
     --ecr-repository-prefix gitlab \
     --upstream-registry-url registry.gitlab.com \
     --credential-arn arn:aws:secretsmanager:us-east-2:111122223333:secret:ecr-pullthroughcache/example1234 \
     --region us-east-2
```

### 對於您 AWS 帳戶中的 Amazon ECR 私有登錄檔
<a name="w2aac28c27c11b7c15"></a>

下列範例會為同一 AWS 帳戶中跨區域 Amazon ECR 私有登錄檔建立提取快取規則。其會指定 `ecr` 的儲存庫字首，這會導致使用提取快取規則建立的每個儲存庫具有 `ecr/upstream-repository-name` 的命名規則。

```
aws ecr create-pull-through-cache-rule \
     --ecr-repository-prefix ecr \
     --upstream-registry-url aws_account_id.dkr.ecr.region.amazonaws.com \
     --region us-east-2
```

### 對於來自另一個 AWS 帳戶的 Amazon ECR 私有登錄
<a name="w2aac28c27c11b7c17"></a>

下列範例會為同一 AWS 帳戶中跨區域 Amazon ECR 私有登錄檔建立提取快取規則。其會指定 `ecr` 的儲存庫字首，這會導致使用提取快取規則建立的每個儲存庫具有 `ecr/upstream-repository-name` 的命名規則。您必須使用在 中建立的許可來指定 IAM 角色的完整 Amazon Resource Name (ARN)[在 Amazon ECR 中建立提取快取規則](#pull-through-cache-creating-rule)。

```
aws ecr create-pull-through-cache-rule \
 --ecr-repository-prefix ecr \
 --upstream-registry-url aws_account_id.dkr.ecr.region.amazonaws.com \
 --custom-role-arn arn:aws:iam::aws_account_id:role/example-role \
 --region us-east-2
```

### 對於 Chainguard 登錄檔
<a name="w2aac28c27c11b7c19"></a>

下列範例會建立 Chainguard Registry 的提取快取規則。其會指定 `chainguard` 的儲存庫字首，這會導致使用提取快取規則建立的每個儲存庫具有 `chainguard/upstream-repository-name` 的命名規則。您必須指定包含 Chainguard 登錄檔登入資料之秘密的完整 Amazon Resource Name (ARN)。

```
aws ecr create-pull-through-cache-rule \
     --ecr-repository-prefix chainguard \
     --upstream-registry-url cgr.dev \
     --credential-arn arn:aws:secretsmanager:us-east-2:111122223333:secret:ecr-pullthroughcache/example1234 \
     --region us-east-2
```

## 後續步驟
<a name="pull-through-cache-creating-rule-next-steps"></a>

建立提取快取規則之後，後續步驟如下：
+ 建立儲存庫建立範本。儲存庫建立範本賦予您控制權，於提取快取動作期間，定義用於 Amazon ECR 代表您建立的新儲存庫的設定。如需詳細資訊，請參閱[用於控制提取快取、推送時建立或複寫動作期間建立的儲存庫的範本](repository-creation-templates.md)。
+ 驗證提取快取規則。驗證提取快取規則時，Amazon ECR 會與上游登錄檔建立網路連線、驗證其是否可存取包含上游登錄檔憑證的 Secrets Manager 秘密，以及身分驗證是否成功。如需詳細資訊，請參閱[驗證 Amazon ECR 中的提取快取規則](pull-through-cache-working-validating.md)。
+ 開始使用提取快取規則。如需詳細資訊，請參閱[在 Amazon ECR 中使用提取快取規則提取映像](pull-through-cache-working-pulling.md)。