【以下的问题经过翻译处理】 你能否在另一个区域中使用一个ECR镜像创建一个新的AppRunner服务?我读了一点关于复制的内容,但如果可能的话,我想避免额外的复杂性来让它工作。额外的区域会引入任何额外的权限问题吗?
否则,这是我的当前设置:
我已经成功地在一个区域中运行了一个AppRunner服务。我正在尝试在第二个区域中使用相同的镜像启动一个服务,但是我遇到了类似于这个问题的问题: 当前服务因无法拉取私有ECR镜像而无法创建或部署服务。
具体而言,该服务被创建,但会进入“OPERATION_IN_PROGRESS”状态一段时间,然后失败并进入“创建失败”状态。在事件“创建服务”的部署日志中查看,我看到:
01-25-2022 01:58:36 PM [AppRunner] Failed to pull your application image. Be sure you configure your service with a valid access role to your ECR repository.
01-25-2022 01:48:54 PM [AppRunner] Starting to pull your application image.
按照其他re:Post问题的建议,我尝试查看源自“ecr.amazonaws.com”的Cloud Trail事件。我有大量的GetAuthorizationToken事件,但是查看它们并没有给我带来太多有趣的信息-它们似乎通过并且使用我期望的角色。
关于权限的一些内容-我正在使用我在创建AWS服务时通过UI创建的默认的AppRunnerECRAccessRole。我正在重用它尝试创建不同的服务。它有一个带有以下JSON的策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecr:GetDownloadUrlForLayer",
"ecr:BatchGetImage",
"ecr:DescribeImages",
"ecr:GetAuthorizationToken",
"ecr:BatchCheckLayerAvailability"
],
"Resource": "*"
}
]
}
有没有针对这个特定场景的其他调试技巧?如果问题1有更通用的建议,我会尽量遵循它。如果可能的话,我想“在与服务器映像所在区域不同的区域创建一个具有相同服务器映像的新服务”(即使这是长期低效的)。