使用 CDK 创建 ECR 存储库的最佳方法是什么?

Rob*_*ade 9 aws-cdk

我使用 CDK 一段时间了,但我还不确定哪种是启动创建 ECR 存储库、构建 Docker 映像并将其发送到 ECR 的堆栈的最佳方式。

我上次的尝试是这样的:

    taskDefinition.addContainer("container", {
      image: new AssetImage('./', {
        repositoryName: "name"
      })
    });
Run Code Online (Sandbox Code Playgroud)

但这种方法有一个问题,它repositoryName在课堂上被弃用AssetImage,而且看起来在任何地方都被弃用。

有人可以告诉我们如何推出这种东西吗?

小智 9

Pedreiro 的答案展示了构建和上传图像的正确方法。在这种情况下,CDK 将自动为您创建一个 ECR 存储库。

我强烈建议使用该aws-ecs-patterns模块来开始使用 CDK 上的 ECS。它已经提供了一些常见的用例,您可以使用很少的代码部署 ECS 服务。概述页面是一个很好的起点:https://docs.aws.amazon.com/cdk/api/latest/docs/aws-ecs-patterns-readme.html

但在不太可能的情况下,您只想使用 CDK 创建 ECR 存储库,您可以这样做:

const repository = new ecr.Repository(this, 'Repository');
Run Code Online (Sandbox Code Playgroud)

查看相应的文档:https://docs.aws.amazon.com/cdk/api/latest/docs/aws-ecr-readme.html


Ped*_*iro 6

您显示的代码不是构建 ECR,而是部署 ECS 任务定义。如果您尝试在部署时构建 docker 映像,CDK 有一个方便的功能,可以使用资产同时执行这两项操作:

image: ecs.ContainerImage.fromAsset('./image') // build and upload an image directly from a Dockerfile in your source directory.
Run Code Online (Sandbox Code Playgroud)

否则,请检查文档中提供的图像选项:https://docs.aws.amazon.com/cdk/api/latest/docs/aws-ecs-readme.html#images