使用AWSCLI从Jenkins更新ECS群集

使用AWSCLI从Jenkins更新ECS群集,jenkins,aws-cli,amazon-ecs,aws-fargate,Jenkins,Aws Cli,Amazon Ecs,Aws Fargate,我有ECS fargate群集。我正在使用CICD将图像推送到ECR存储库,然后更新群集。我正在存储库中使用最新标记 通过使用下面的方法,我习惯于手工操作。 创建新版本的任务定义-->使用新版本的任务定义更新服务-->使用旧版本停止任务 现在,当我试图从詹金斯那里实现自动化时,我使用的是AWSCLI 我有一个问题。如果我使用下面的命令,它会创建任务定义和更新服务的新版本吗?或者我必须先创建任务定义的新版本 aws ecs update-service --cluster ec2cluster

我有ECS fargate群集。我正在使用CICD将图像推送到ECR存储库,然后更新群集。我正在存储库中使用最新标记

通过使用下面的方法,我习惯于手工操作。 创建新版本的任务定义-->使用新版本的任务定义更新服务-->使用旧版本停止任务

现在,当我试图从詹金斯那里实现自动化时,我使用的是AWSCLI

我有一个问题。如果我使用下面的命令,它会创建任务定义和更新服务的新版本吗?或者我必须先创建任务定义的新版本

  aws ecs update-service --cluster ec2cluster_name --service service_name --force-new-deployment

如果您正在更新/使用相同的映像标记,则当您执行
forceNewDeployment
时,它将从存储库中获取最新映像并更新ECS服务

ecs更新服务文档说明:

如果更新的Docker映像使用与服务的现有任务定义中相同的标记(例如,my_image:latest),则无需创建任务定义的新修订版。您可以使用forceNewDeployment选项更新服务。部署启动的新任务在启动时从存储库中提取当前图像/标记组合


上面的命令不会创建新的任务定义,要创建任务定义,请看一看

我使用了相同的图像标记(最新)。因此,如果我在这里理解正确,我不必创建新版本的任务定义。上面提到的命令很好,对吗?是的,你是正确的。仅使用force new deployment更新ecs服务就足够了。