新的ECS Fargate服务无法满足任务定义所需的能力的方式是什么

67次阅读
没有评论

问题描述

在使用AWS ECS创建一个新的Fargate任务时,在AWS控制台向导中,出现以下错误:

Failed creation of ServiceService creation failed: The specified platform does not satisfy the task definition’s required capabilities.

服务的启动类型设置为FARGATE,平台版本设置为LATEST。任务尝试挂载AWS EFS文件系统以实现持久存储(在平台的1.4.0版本中引入)。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

这是由于AWS尚未将LATEST升级到指向v1.4.0(截至2020-06-23,参见AWS ECS开发人员指南)。将服务的平台版本明确设置为1.4.0(而不是LATEST)即可解决问题。

方案2

请注意以下操作可能存在风险,请谨慎操作。
根据回答2的描述,如果使用了S3配置类型的firelens日志驱动程序,则会出现相同的错误。因为Fargate目前仅支持本地文件,所以需要将其更改为任务定义JSON中的本地文件。
以下是一个示例任务定义JSON的片段:

{
  "containerDefinitions": [
    {
      "name": "your_container_name",
      "image": "your_image_name",
      "logConfiguration": {
        "logDriver": "awsfirelens",
        "options": {
          "Name": "your_log_group_name",
          "Type": "local"
        }
      }
    }
  ]
}

在上面的示例中,我们将logDriver设置为awsfirelens,并将Type设置为local,以使用本地文件作为日志存储。
请注意,这只是一个示例,具体的任务定义可能会有所不同,具体取决于您的应用程序和需求。

正文完