

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 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 Public、Kubernetes 容器注册表或 Quay
<a name="w2aac28c27b9b7b1"></a>

1. 打开 Amazon ECR 控制台，网址为[https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/)。

1. 从导航栏中，选择要配置私有注册表设置的区域。

1. 在导航窗格中，选择 **Private registry**（私有注册表）、**Pull through cache**（缓存提取）。

1. 在 **Pull through cache configuration**（缓存提取配置）页面上，选择 **Add rule**（添加规则）。

1. 在**步骤 1：指定来源**页面上，对于**注册表**，请从上游注册表的列表中选择 Amazon ECR Public、Kubernetes 或 Quay，然后选择**下一步**。

1. 在**步骤 2：指定目标**页面上，对于 **Amazon ECR 存储库前缀**，请指定在缓存从源公有注册表中提取的映像时要使用的存储库命名空间前缀，然后选择**下一步**。默认情况下，已填充命名空间，但也可以指定自定义命名空间。

1. 在**步骤 3：审核并创建**页面上，审核缓存提取规则配置，然后选择**创建**。

1. 对要创建的每个缓存提取重复上一步骤。单独为每个区域创建了缓存提取规则。

### 对于 Docker Hub
<a name="w2aac28c27b9b7b3"></a>

1. 打开 Amazon ECR 控制台，网址为[https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/)。

1. 从导航栏中，选择要配置私有注册表设置的区域。

1. 在导航窗格中，选择 **Private registry**（私有注册表）、**Pull through cache**（缓存提取）。

1. 在 **Pull through cache configuration**（缓存提取配置）页面上，选择 **Add rule**（添加规则）。

1. 在**步骤 1：指定来源**页面上，对于**注册表**，选择 **Docker Hub**，然后选择**下一步**。

1. 在**步骤 2：配置身份验证**页面上，对于**上游凭证**，您必须以 AWS Secrets Manager 密钥存储 Docker Hub 的身份验证凭证。您可以指定现有密钥，也可以使用 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 文档中的 [Create and manage access tokens](https://docs.docker.com/security/for-developers/access-tokens/)。

1. 在**步骤 3：指定目标**页面上，对于 **Amazon ECR 存储库前缀**，请指定在缓存从源公有注册表中提取的映像时要使用的存储库命名空间，然后选择**下一步**。

   默认情况下，已填充命名空间，但也可以指定自定义命名空间。

1. 在**步骤 4：审核并创建**页面上，审核缓存提取规则配置，然后选择**创建**。

1. 对要创建的每个缓存提取重复上一步骤。单独为每个区域创建了缓存提取规则。

### 对于 GitHub 容器注册表
<a name="w2aac28c27b9b7b5"></a>

1. 打开 Amazon ECR 控制台，网址为[https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/)。

1. 从导航栏中，选择要配置私有注册表设置的区域。

1. 在导航窗格中，选择 **Private registry**（私有注册表）、**Pull through cache**（缓存提取）。

1. 在 **Pull through cache configuration**（缓存提取配置）页面上，选择 **Add rule**（添加规则）。

1. 在 “**步骤 1：指定来源**” 页面上，对于 “注册表”，选择 “**GitHub 容器注册****表**”，然后选择 “**下一步**”。

1. 在 “**步骤 2：配置身份验证**” 页面上，对于**上游凭证**，您必须将 GitHub 容器注册表的身份验证凭据存储在 AWS Secrets Manager 密钥中。您可以指定现有密钥，也可以使用 Amazon ECR 控制台创建新密钥。

   1. 要使用现有密钥，请选择**使用现有 AWS 密钥**。对于**密钥名称**，使用下拉列表选择现有的密钥，然后选择**下一步**。
**注意**  
 AWS 管理控制台 仅显示名称使用`ecr-pullthroughcache/`前缀的 Secrets Manager 密钥。密钥还必须与缓存提取规则位于相同的账户和区域。

   1. 要创建新密钥，请选择**创建 AWS 密钥**，执行以下操作，然后选择**下一步**。

      1. 在**密钥名称**中，请为密钥指定一个描述性名称。密钥名称必须包含 1-512 个 Unicode 字符。

      1. 对于**GitHub 容器注册表用户名**，请指定您的 GitHub 容器注册表用户名。

      1. 对于**GitHub 容器注册表访问令牌**，请指定您的 GitHub 容器注册表访问令牌。有关创建 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 容器注册表
<a name="w2aac28c27b9b7b7"></a>

1. 打开 Amazon ECR 控制台，网址为[https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/)。

1. 从导航栏中，选择要配置私有注册表设置的区域。

1. 在导航窗格中，选择 **Private registry**（私有注册表）、**Pull through cache**（缓存提取）。

1. 在 **Pull through cache configuration**（缓存提取配置）页面上，选择 **Add rule**（添加规则）。

1. 在**步骤 1：指定来源**页面上，执行以下操作。

   1. 在**注册表**中，请选择**Microsoft Azure 容器注册表**

   1. 在**源注册表 URL** 中，请指定 Microsoft Azure 容器注册表的名称，然后选择**下一步**。
**重要**  
您只需要指定前缀，因为系统已代表您填充 `.azurecr.io` 后缀。

1. 在**步骤 2：配置身份验证**页面上，对于**上游凭证**，您必须以 AWS Secrets Manager 密钥存储 Microsoft Azure 容器注册表的身份验证凭证。您可以指定现有密钥，也可以使用 Amazon ECR 控制台创建新密钥。

   1. 要使用现有密钥，请选择**使用现有 AWS 密钥**。对于**密钥名称**，使用下拉列表选择现有的密钥，然后选择**下一步**。
**注意**  
 AWS 管理控制台 仅显示名称使用`ecr-pullthroughcache/`前缀的 Secrets Manager 密钥。密钥还必须与缓存提取规则位于相同的账户和区域。

   1. 要创建新密钥，请选择**创建 AWS 密钥**，执行以下操作，然后选择**下一步**。

      1. 在**密钥名称**中，请为密钥指定一个描述性名称。密钥名称必须包含 1-512 个 Unicode 字符。

      1. 在 **Microsoft Azure 容器注册表用户名**中，请指定 Microsoft Azure 容器注册表用户名。

      1. 在 **Microsoft Azure 容器注册表访问令牌**中，请指定 Microsoft Azure 容器注册表访问令牌。有关如何创建 Microsoft Azure 容器注册表访问令牌的更多信息，请参阅 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. 打开 Amazon ECR 控制台，网址为[https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/)。

1. 从导航栏中，选择要配置私有注册表设置的区域。

1. 在导航窗格中，选择 **Private registry**（私有注册表）、**Pull through cache**（缓存提取）。

1. 在 **Pull through cache configuration**（缓存提取配置）页面上，选择 **Add rule**（添加规则）。

1. 在 “**步骤 1：指定来源**” 页面上，对于 “注册表”，选择 “ GitLab 容器注册表”，然后选择 “下一步”。

1. 在 “**步骤 2：配置身份验证**” 页面上，对于**上游凭证**，您必须将 GitLab 容器注册表的身份验证凭据存储在 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 容器注册表用户名**，请指定您的 GitLab 容器注册表用户名。

      1. 对于**GitLab 容器注册表访问令牌**，请指定您的 GitLab 容器注册表访问令牌。有关创建 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. 打开 Amazon ECR 控制台，网址为[https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/)。

1. 从导航栏中，选择要配置私有注册表设置的区域。

1. 在导航窗格中，选择 **Private registry**（私有注册表）、**Pull through cache**（缓存提取）。

1. 在 **Pull through cache configuration**（缓存提取配置）页面上，选择 **Add rule**（添加规则）。

1. 在**步骤 1：指定上游**页面上，在**注册表**中选择 **Amazon ECR 私有**和**此账户**。对于**区域**，选择上游 Amazon ECR 注册表的区域，然后选择**下一步**。

1. 在**步骤 2：指定命名空间**页面上，对于**缓存命名空间**，选择是创建带**特定前缀**还是**不带前缀**的提取缓存存储库。如果选择**特定前缀**，则必须指定一个前缀名称，该名称将用作命名空间的一部分，用于缓存来自上游注册表的映像。

1. 对于**上游命名空间**，选择是否从上游注册表中存在的**特定前缀**中提取。如果选择**不带前缀**，则可以从上游注册表中的任何存储库中提取数据。如果出现提示，请指定上游存储库前缀，然后选择**下一步**。
**注意**  
要了解有关自定义缓存和上游命名空间的更多信息，请参阅 [自定义 ECR 到 ECR 提取缓存的存储库前缀](pull-through-cache-private-wildcards.md)。

1. 在**步骤 3：审核并创建**页面上，审核缓存提取规则配置，然后选择**创建**。

1. 对要创建的每个提取缓存，重复这些步骤。单独为每个区域创建了缓存提取规则。

### 对于来自其他 AWS 账户的 Amazon ECR 私有注册表
<a name="w2aac28c27b9b7c13"></a>

1. 打开 Amazon ECR 控制台，网址为[https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/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 角色**，选择用于跨账户提取缓存访问的角色，然后选择**创建**。
**注意**  
请务必选择使用在 [跨账户 ECR 到 ECR 提取缓存所需的 IAM 策略](pull-through-cache-private.md#pull-through-cache-private-permissions) 中创建的权限的 IAM 角色。

1. 在**步骤 3：指定命名空间**页面上，对于**缓存命名空间**，选择是创建带**特定前缀**还是**不带前缀**的提取缓存存储库。如果选择**特定前缀**，则必须指定一个前缀名称，该名称将用作命名空间的一部分，用于缓存来自上游注册表的映像。

1. 对于**上游命名空间**，选择是否从上游注册表中存在的**特定前缀**中提取。如果选择**不带前缀**，则可以从上游注册表中的任何存储库中提取数据。如果出现提示，请指定上游存储库前缀，然后选择**下一步**。
**注意**  
要了解有关自定义缓存和上游命名空间的更多信息，请参阅 [自定义 ECR 到 ECR 提取缓存的存储库前缀](pull-through-cache-private-wildcards.md)。

1. 在**步骤 4：审核并创建**页面上，审核缓存提取规则配置，然后选择**创建**。

1. 对要创建的每个提取缓存，重复这些步骤。单独为每个区域创建了缓存提取规则。

### 对于链条注册表
<a name="w2aac28c27b9b7c15"></a>

1. 打开 Amazon ECR 控制台，网址为[https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/)。

1. 从导航栏中，选择要配置私有注册表设置的区域。

1. 在导航窗格中，选择 **Private registry**（私有注册表）、**Pull through cache**（缓存提取）。

1. 在 **Pull through cache configuration**（缓存提取配置）页面上，选择 **Add rule**（添加规则）。

1. 在 “**步骤 1：指定源**页面” 中，对于 “注册表”，选择 Chainguard Registry，下一步。

1. 在 “**步骤 2：配置身份验证**” 页面上，对于**上游凭据**，您必须将 Chainguard Registr AWS Secrets Manager y 的身份验证凭据存储在密钥中。您可以指定现有密钥，也可以使用 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 Regist 有关创建 Chainguard Registry 拉取令牌的更多信息，请参阅 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- AWS CLI rule](https://docs.aws.amazon.com/cli/latest/reference/ecr/create-pull-through-cache-rule.html) 命令为 Amazon ECR 私有注册表创建直通缓存规则。对于需要使用密钥进行身份验证的上游注册表，您必须以 Secrets Manager 密钥存储凭证。要使用 Secrets Manager 控制台创建密钥，请参阅[将您的上游存储库凭证存储在 AWS Secrets Manager 密钥中](pull-through-cache-creating-secret.md)。

针对每个支持的上游注册表提供以下示例。

### 对于 Amazon ECR Public
<a name="w2aac28c27c11b7b1"></a>

以下示例为 Amazon ECR 公有注册表创建一个缓存提取规则。它指定了存储库前缀 `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 容器注册表
<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 资源名称（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 容器注册表
<a name="w2aac28c27c11b7b9"></a>

以下示例为 GitHub 容器注册表创建了通过缓存规则。它指定了存储库前缀 `github`，这导致使用缓存提取规则创建的每个存储库都具有 `github/upstream-repository-name` 命名方案。您必须指定包含您的 GitHub 容器注册凭证的密钥的完整 Amazon 资源名称 (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 容器注册表
<a name="w2aac28c27c11b7c11"></a>

以下示例为 Microsoft Azure 容器注册表创建了一个缓存提取规则。它指定了存储库前缀 `azure`，这导致使用缓存提取规则创建的每个存储库都具有 `azure/upstream-repository-name` 命名方案。您必须指定包含 Microsoft Azure 容器注册表凭证的密钥的完整 Amazon 资源名称（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 容器注册表创建了通过缓存规则。它指定了存储库前缀 `gitlab`，这导致使用缓存提取规则创建的每个存储库都具有 `gitlab/upstream-repository-name` 命名方案。您必须指定包含您的 GitLab 容器注册凭证的密钥的完整 Amazon 资源名称 (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` 命名方案。您必须指定具有在 [在 Amazon ECR 中创建缓存提取规则](#pull-through-cache-creating-rule) 中创建的权限的 IAM 角色的完整 Amazon 资源名称 (ARN)。

```
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
```

### 对于链条注册表
<a name="w2aac28c27c11b7c19"></a>

以下示例为 Chainguard Registry 创建了通过缓存规则。它指定了存储库前缀 `chainguard`，这导致使用缓存提取规则创建的每个存储库都具有 `chainguard/upstream-repository-name` 命名方案。您必须指定包含您的 Chainguard Registry 凭证的密钥的完整亚马逊资源名称 (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)。