通过 CLI 的 AWS deplyong ECS 服务
AWS deplyong ECS services through CLI
我想通过 aws cli
(在 CI/CD 的最后一步)部署(重启)我的 ECS 任务(启动类型 Fargate)。
他们的问题是我似乎必须停止任务,并再次更新他们的状态。仍然可以,但是在以下命令中:
aws --region regionName ecs stop-task --cluster example-cluster --task taskID
,对于 --task
,我必须使用任务 UUID 或任务的 ARN,两者都没有完全固定。
任务的 UUID 随每个修订版本而变化,ARN 也是一个名称,其最后一部分是修订版本号。是否有完全固定的标识符可以用作 ARN?
此外,在 ARN 中,例如,如果我有 nginx:4
,我不能使用“最新”而不是 4,这使得它完全难以处理和自动化。
我找到了解决方案,使用 *-task
系列命令是错误的。要部署服务,我们只需使用 update-service
命令,如下所示:
aws --region regionName ecs update-service --cluster clusterName --force-new-deployment --service serviceName
重点是--force-new-deployment
,这个命令对那些不使用CodeDeploy.
的人很有用
我想通过 aws cli
(在 CI/CD 的最后一步)部署(重启)我的 ECS 任务(启动类型 Fargate)。
他们的问题是我似乎必须停止任务,并再次更新他们的状态。仍然可以,但是在以下命令中:
aws --region regionName ecs stop-task --cluster example-cluster --task taskID
,对于 --task
,我必须使用任务 UUID 或任务的 ARN,两者都没有完全固定。
任务的 UUID 随每个修订版本而变化,ARN 也是一个名称,其最后一部分是修订版本号。是否有完全固定的标识符可以用作 ARN?
此外,在 ARN 中,例如,如果我有 nginx:4
,我不能使用“最新”而不是 4,这使得它完全难以处理和自动化。
我找到了解决方案,使用 *-task
系列命令是错误的。要部署服务,我们只需使用 update-service
命令,如下所示:
aws --region regionName ecs update-service --cluster clusterName --force-new-deployment --service serviceName
重点是--force-new-deployment
,这个命令对那些不使用CodeDeploy.