调用 UpdateService 操作时的 AWS ECS InvalidParameterExcpetion

Posted

技术标签:

【中文标题】调用 UpdateService 操作时的 AWS ECS InvalidParameterExcpetion【英文标题】:AWS ECS InvalidParameterExcpetion when calling the UpdateService Operation 【发布时间】:2020-03-03 19:59:41 【问题描述】:

我一直在尝试使用 jenkins 为我的 ECS 集群设置 CI/CD。我跟着这个blog 做同样的事情。但是我收到了这个错误:

调用时发生错误(InvalidParameterException) UpdateService 操作:修订号无效。数量:49

用于更新服务的命令是:

aws ecs update-service --cluster $CLUSTER_NAME --service $SERVICE_NAME --task-definition $TASK_FAMILY:$TASK_REVISION --desired-count $DESIRED_COUNT

令人惊讶的是,如果我从 cli 运行命令并输入所有值,它就会成功运行。我不确定该命令有什么问题。

Edit 1:修订存在于 AWS 的任务定义中。我可以从 AWS 控制台看到该特定修订。正如我已经提到的,该命令使用该特定版本从 cli 成功运行。

编辑 2:我可以使用 aws ecs list-task-definitions 列出任务定义,并且我在列表中看到了该特定任务定义,但我无法使用 $ 描述该任务定义TASK_FAMILY:$TASK_REVISION。它给了我同样的错误。

【问题讨论】:

【参考方案1】:

好吧,我发现 aws ecs describe-task-definition $TASK_FAMILY 正在工作,而 aws ecs describe-task-definition $TASK_FAMILY:$TASK_REVISION 正在抛出相同的 Invalid revision number error

所以我尝试了 update-service 命令而不使用 $TASK_REVISION 变量,如下所示:

aws ecs update-service --cluster $CLUSTER_NAME --service $SERVICE_NAME --task-definition $TASK_FAMILY --desired-count $DESIRED_COUNT

它奏效了。它还使用任务定义的最新版本。

【讨论】:

您知道这是否适用于 ARN?或者只是TaskFamily 可以吗?谢谢 @IvánSánchez 你只需要输入任务族。不需要完整的 ARN

以上是关于调用 UpdateService 操作时的 AWS ECS InvalidParameterExcpetion的主要内容,如果未能解决你的问题,请参考以下文章

在 AWS Elastic Beanstalk 应用程序中运行 Tomcat Docker 时的端口转发

使用第三方 smtp 服务器时的 AWS EC2 电子邮件发送限制

运行 Pyspark 脚本时的 Zeppelin 错误

Django/AWS - 调用 HeadObject 操作时发生错误(403):禁止

从 Heroku 迁移到 AWS 时的清单

AWS Lamda:ClientError:调用 HeadObject 操作时发生错误(403):禁止