我有一个在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将服务更新到最新的任务定义版本。我将不胜感激任何帮助。谢谢。
答案 0 :(得分:0)
如果您查看ecs命令行参考,here update-service
不支持--launch-type
标志。它不支持此标志的原因是因为您正在尝试更新已经创建的服务。您只能在运行create-service
(here)时指定启动类型。
您可能会遇到第一个错误的原因是因为您没有使用 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