我正在尝试将一个非常简单的 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 服务定义,因此我有来自云形成的模板