jenkins 调用UpdateService操作时的AWS ECS InvalidParameterExcpetion

wwodge7n  于 2023-03-22  发布在  Jenkins
关注(0)|答案(2)|浏览(134)

我一直在尝试使用jenkins为我的ECS集群设置CI/CD。我遵循此blog进行了相同的操作。但我收到以下错误:
调用UpdateService操作时出错(InvalidParameterException):无效的修订号。编号:49
用于更新服务的命令为:

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

令人惊讶的是,如果我从cli运行命令并输入所有的值,它会成功运行。我不知道这个命令有什么问题。

编辑1:版本号存在于AWS的task-definition中。我可以在AWS控制台中看到该特定版本号。正如我已经提到的,使用该特定版本号在cli中成功运行命令。
编辑2:我可以使用aws ecs list-task-definitions列出任务定义,我在列表中看到了特定的任务定义,但我无法使用${TASK_FAMILY}:${TASK_REVISION}描述该任务定义。它给了我同样的错误。

pbgvytdp

pbgvytdp1#

我发现aws ecs describe-task-definition ${TASK_FAMILY}正在工作,而aws ecs describe-task-definition ${TASK_FAMILY}:${TASK_REVISION}抛出了相同的Invalid revision number error
因此,我尝试了不使用${TASK_REVISION}变量的update-service命令,如下所示:

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

而且它起作用了。它还使用了任务定义的最新版本。

igetnqfo

igetnqfo2#

如果任务定义或服务是完整的ARN(与文档相反),那么bash脚本文件中的AWS CLI命令似乎不起作用。当我通过删除arn:aws:..../部分将任务定义和服务剥离到它们的名称(和修订号)时,我的脚本就开始工作了。
需要说明的是,任务定义和服务的完整arn在命令提示符下工作......只是不在bash-script中工作。

相关问题