创建 Fargate 任务时获取“Fargate 需要任务定义具有执行角色 ARN 以支持 ECR 映像。”但角色已定义

创建 Fargate 任务时获取“Fargate 需要任务定义具有执行角色 ARN 以支持 ECR 映像。”但角色已定义

我正在尝试将一个非常简单的 Web 应用程序部署到 AWS Fargate。

我已将应用程序后端的 docker 映像推送到 ECR,并尝试为容器设置 Fargate 任务定义。我已定义任务的所有属性,设置相当简单,但任务无法创建,并且我总是收到错误:

提供的请求无效:创建 TaskDefinition:Fargate 要求任务定义具有执行角色 ARN 以支持 ECR 映像。(服务:AmazonECS;状态代码:400;错误代码:ClientException;请求 ID:;代理:null)”(RequestToken:,HandlerErrorCode:InvalidRequest)

我知道我有一个 ECR 映像,并且我已经创建并选择了 Fargate 所需的 IAM 角色(使用本文档),但它仍然抱怨。

我最初使用 EC2 启动类型创建任务并且没有任何问题,但出于成本和简单性的考虑,决定使用 Fargate 启动类型。

我还必须做什么?

答案1

我刚刚遇到这个问题,并能够通过 AWS 解决它。显然,在使用 GUI 进行任务定义时添加与 IAM 角色关联的权限时存在一个错误。

要解决此问题,您可以转到 Cloud Formation 以在那里指定配置文件。您应该在那里看到失败的任务定义。单击与您的任务定义关联的堆栈,然后选择更新/在设计器中编辑模板

编辑 JSON 并添加以下内容"TaskRoleArn": "your task role"

{
  […]
  "executionRoleArn" : "the-same-string-that-taskRoleArn-is-set-to"
  […]
}

这应该可以解决你的问题

答案2

这似乎是新 ECS UI 中的一个错误。

通过取消选中左侧边栏中的“新 ECS 体验”选项切换回旧 UI,它应该可以正常工作。

答案3

“更新”按钮对我来说已禁用。有什么想法可以启用它或其他解决方法吗?几天前我能够创建 Fargate 服务定义,因此我有来自云形成的模板

相关内容