任务定义不支持launch_type FARGATE

时间:2019-03-04 19:44:19

标签: amazon-web-services aws-cli amazon-ecs

我有一个在AWS ECS中运行的Fargate应用程序,我正在尝试通过AWS CLI(aws-cli / 1.16.96 Python / 2.7.15 Darwin / 18.0.0 botocore / 1.12.86)更新。

我已经成功构建并推送了图像,还成功创建了新的任务定义版本。

当我尝试使用以下命令更新服务时: aws ecs update-service --cluster cluster-winquest-qa --service container-qa-ge-service --desired-count 0 aws ecs update-service --cluster cluster-qa --service container-service --task-definition first-run-task-definition:5 --platform-version "LATEST" --desired-count 1

向我抛出以下错误消息: An error occurred (InvalidParameterException) when calling the UpdateService operation: Task definition does not support launch_type FARGATE

然后我尝试将--launch-type“ FARGATE”添加到上述命令,并构建以下命令: aws ecs update-service --cluster cluster-qa --service container-service --task-definition first-run-task-definition:5 --platform-version "LATEST" --launch-type "FARGATE" --desired-count 1

它抛出: Unknown options: --launch-type, FARGATE

我知道错误消息表示Fargate应用程序不支持任务定义,但是我想知道如何使用AWS CLI将服务更新到最新的任务定义版本。我将不胜感激任何帮助。谢谢。

2 个答案:

答案 0 :(得分:0)

如果您查看ecs命令行参考,here update-service不支持--launch-type标志。它不支持此标志的原因是因为您正在尝试更新已经创建的服务。您只能在运行create-servicehere)时指定启动类型。

您可能会遇到第一个错误的原因是因为您没有使用 Powered by AWS Fargate 集群类型创建集群。您正在使用--platform-version标志,该标志仅用于Fargate类型的集群(在AWS文档中提到)。

另外,要让您的服务使用最新的任务定义,您可以简单地使用--task-definition标志,因为默认情况下,如果未指定修订,则它使用最新的ACTIVE修订。 / p>

答案 1 :(得分:0)

我解决了。问题是我如何创建任务定义的新版本,在那里我必须配置requiresCompatibilities参数来指定它。

我使用了此文档: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_AWSCLI_Fargate.html