将 Amazon ECR 映像与 Amazon ECS 结合使用
您可以在 Amazon ECS 任务定义中使用 Amazon ECR 中托管的容器映像,但需要满足以下先决条件。
-
为 Amazon ECS 任务使用 EC2 启动类型时,容器实例必须至少使用 1.7.0 版本的 Amazon ECS 容器代理。最新版本的经 Amazon ECS 优化的 AMI 在任务定义中支持 Amazon ECR 映像。有关更多信息,包括最新的经 Amazon ECS 优化 的 AMI ID,请参阅 Amazon Elastic Container Service 开发人员指南中的经 Amazon ECS 优化的 AMI 版本。
-
Amazon ECS 容器实例 IAM 角色 (
ecsInstanceRole)必须包含以下适用于 Amazon ECR 的 IAM 策略权限。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }如果您使用 AmazonEC2ContainerServiceforEC2Role 托管策略,则您的容器实例 IAM 角色具有适当的权限。要检查您的角色是否支持 Amazon ECR,请参阅 Amazon Elastic Container Service 开发人员指南中的 Amazon ECS 容器实例 IAM 角色。
-
在 Amazon ECS 任务定义中,确保对 Amazon ECR 映像使用完整的
registry/repository:tag命名。例如:aws_account_id.dkr.ecr.region.amazonaws.com/。my-repository:latest以下任务定义代码段显示了用于指定在 Amazon ECS 任务定义中的 Amazon ECR 中托管的容器映像的语法。
{ "family": "task-definition-name", ... "containerDefinitions": [ { "name": "container-name", "image": "aws_account_id.dkr.ecr.region.amazonaws.com/", ... } ], ... }my-repository:latest