cloudformation中的--force-new-deployment标志等效于什么? (aws ecs update-service --cluster --service --force-new-deployment)
在我的cloudformation模板中,我的docker image标签是最新的。但是,如果我重播堆栈,我希望能够强制重新部署。
谢谢
答案 0 :(得分:1)
将CloudFormation看作是预配置服务或协调器。
将Image指定为repository-url/image:tag
肯定会从您的存储库中获取带有特定标签的指定图像,但仅在进行堆栈操作时才可以。堆栈操作完成后,对服务的任何更改将取决于下一个堆栈操作。
您可以在这里做任何一个
update-service --cluster --service --force-new-deployment ...
命令。注意事项:
DRIFTED
状态。答案 1 :(得分:1)
如果需要,这是我想在堆栈更新后强制部署的方法。服务名称与堆栈名称相同,因此如果您的服务名称不同,则需要相应调整。
START_TIME=`date +%s`
aws cloudformation deploy --stack-name $STACK_NAME [other options]
LAST_DEPLOY=`aws ecs describe-services --services $STACK_NAME --query "services[0].deployments[?status=='PRIMARY'].createdAt" --output text`
if [ "$START_TIME" -gt "${LAST_DEPLOY%.*}" ]; then aws ecs update-service --service $STACK_NAME --force-new-deployment; fi
答案 2 :(得分:0)
我能想到的最好方法是将我的健康检查从 curl -f 更改为 curl --fail 并返回以强制进行新的部署。不理想,但有效。
我对更好的方式感兴趣,最好也内置到 CloudFormation 中。