@aws-cdk/aws-ecr

中文文档
1.204.0发布于 2023/06/20Apache-2.0TypeScriptCommonJS近 30 天下载 31.9万

AWS: ECR 的 CDK 构建库

此软件包已被标记为弃用

AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html

中文使用文档
文档目录6 节
  1. 仓库
  2. 图像扫描
  3. 授权托肯
  4. 图像标记不可改变性
  5. 加密
  6. 自动清理仓库

Amazon ECR 构造库


End-of-Support

AWS CDK v1在2023-06-01上达到了支持结束. 此软件包不再更新,用户应该迁移到 AWS CDK v2.

关于如何移徙的更多信息,请参见: 移动到 AWS CDK v2 指南。 。 。 .


该套装包含与亚马逊弹性集装箱登记处合作的构件.

仓库

通过创建新实例定义寄存器 Repository。存储器 持有一个单一容器图像的多面体.

const repository = new ecr.Repository(this, 'Repository');

图像扫描

Amazon ECR图像扫描有助于识别您容器图像中的软件弱点. 你可以手动扫描存储在亚马逊ECR的容器图像,也可以在将图像推入存储库时配置自己的存储库来扫描. 要创建一个新的仓库来扫描按下,只需启用 imageScanOnPush 属性

const repository = new ecr.Repository(this, 'Repo', {
  imageScanOnPush: true,
});

创建 onImageScanCompleted 事件规则并触发事件目标

declare const repository: ecr.Repository;
declare const target: SomeTarget;

repository.onImageScanCompleted('ImageScanComplete')
  .addTarget(target);

授权托肯

除了亚马逊ECR API,ECR还允许多克CLI或语言特有多克库来推和拉 图像来自 ECR 存储器。 但是,Docker CLI不支持本地IAM认证方法和 必须采取更多步骤,使亚马逊ECR能够认证并授权多克推和拉请求. 更多信息可在 注册认证。 。 。 .

可使用此选项获取 Docker 授权令牌 GetAuthorizationToken ECR API (英语). 以下代码片断 授权一个 IAM 用户访问权限来调用此 API .

const user = new iam.User(this, 'User');
ecr.AuthorizationToken.grantRead(user);

如果您访问图像 公共 ECR 图片库 另外,建议你向登记处认证,以便从 更高的速率和带宽限制.

见 Pricing 内 https://aws.amazon.com/blogs/aws/amazon-ecr-public-a-new-public-container-registry/ 互联网档案馆的存檔,存档日期2014-12-02 财务报告和审定财务报表 服务配额。 。 。 .

以下代码片段允许IAM用户访问,以获取公共画廊的授权令牌.

const user = new iam.User(this, 'User');
ecr.PublicGalleryAuthorizationToken.grantRead(user);

该用户随后可以使用其中之一登录登记册 认证方法。 。 。 .

图像标记不可改变性

您可以使用 imageTagMutability 构造道具.

new ecr.Repository(this, 'Repo', { imageTagMutability: ecr.TagMutability.IMMUTABLE });

加密

默认情况下,Amazon ECR使用服务器侧加密,使用Amazon S3管理的加密密钥在休息时使用AES-256加密算法加密您的数据. 为了对您的亚马逊ECR寄存器的加密进行更多的控制,可以使用存储在AWS密钥管理服务(AWS KMS)中的KMS密钥进行服务器侧加密. 更多信息,请访问 ECR 开发者指南。 。 。 .

当您使用 AWS KMS 加密您的数据时, 您可以使用默认的 AWS 管理密钥, 由 Amazon ECR 管理, 通过指定 RepositoryEncryption.KMS 输入 encryption 属性。 或指定客户管理 KMS 密钥 encryptionKey 属性.

何时 encryptionKey 设定了 encryption 属性必须是 KMS 或为空.

在这种情况下 encryption 设置为 KMS 但是没有 encryptionKey 设置,使用 AWS 管理的 KMS 密钥.

new ecr.Repository(this, 'Repo', {
  encryption: ecr.RepositoryEncryption.KMS
});

否则,如果 encryptionKey 设定和 encryption 可选设置为 KMS。 。 。 .

import * as kms from '@aws-cdk/aws-kms';

new ecr.Repository(this, 'Repo', {
  encryptionKey: new kms.Key(this, 'Key'),
});

自动清理仓库

您可以设置生命周期规则, 自动清理您的旧图像 仓库。 将应用匹配图像的第一个生命周期规则 反倒那个形象。 例如,以下删除比 30天,同时将所有图像贴上斜体标记(注意顺序) 这里很重要:

declare const repository: ecr.Repository;
repository.addLifecycleRule({ tagPrefixList: ['prod'], maxImageCount: 9999 });
repository.addLifecycleRule({ maxImageAge: Duration.days(30) });

版本与发布记录

@aws-cdk/aws-ecr 共发布 288 个版本,首次发布于 2018/07/31;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.204.0latest2023/06/203 年前
1.203.02023/06/013 年前
1.202.02023/05/223 年前
1.201.02023/05/113 年前
1.200.02023/04/273 年前
1.199.02023/04/213 年前

关于 @aws-cdk/aws-ecr 的常见问题

@aws-cdk/aws-ecr 是什么?

AWS: ECR 的 CDK 构建库注意:该包已被作者标记为弃用——AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html

如何安装 @aws-cdk/aws-ecr?

在项目目录运行 npm install @aws-cdk/aws-ecr,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@aws-cdk/aws-events(1.204.0)、@aws-cdk/aws-iam(1.204.0)、@aws-cdk/aws-kms(1.204.0)、@aws-cdk/core(1.204.0)、constructs(^3.3.69)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@aws-cdk/aws-ecr 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@aws-cdk/aws-ecr 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@aws-cdk/aws-ecr 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >= 14.15.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@aws-cdk/aws-ecr 可以商用吗?

@aws-cdk/aws-ecr 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@aws-cdk/aws-ecr 的下载量有多少?

根据 npm 官方下载统计,@aws-cdk/aws-ecr 在 2026/10/07 – 2026/11/05 这 30 天内被下载 319,397 次,日均约 10,647 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@aws-cdk/aws-ecr 还在维护吗?

最新版本 1.204.0 发布于 2023/06/20(3 年前);至今共发布 288 个版本,其中过去 12 个月发布了 0 个;首次发布于 2018/07/31。作者已将其标记为弃用,新项目建议寻找替代方案。