问题描述
在使用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
,以使用本地文件作为日志存储。
请注意,这只是一个示例,具体的任务定义可能会有所不同,具体取决于您的应用程序和需求。
正文完