amazon-cloudformation - CloudFormation 的超时配置
问题描述
我正在对 ECS 运行 CloudFormation 更新。由 CodePipeline 触发。我想在超时后中止 CloudFormation 部署并回滚到以前的版本。
实现这一目标的最佳方法是什么?我看到了一些关于 WaitConditions 的东西,但我不确定这是正确的机制。
我还发现您可以TimeoutInMinutes
在嵌套堆栈上配置一个https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-timeoutinminutes - 但听起来你不能在堆栈的顶层或任意资源上应用类似的属性?
有没有另一种方法可以使用组合,如果它不成功,我可以在几分钟后中止 Codepipeline-> Cloudformation-> ECS 部署?
解决方案
我们不使用 CodePipeline,我们使用的是 Sceptre。但我想我的解决方法仍然有效。我对这个问题的解决方法是在触发部署之前,在后台运行一个脚本。
./deployment-breaker.sh &
而对于脚本
#!/bin/bash
sleep 600
$deploymentStatus = (aws cloudformation describe-stack --stack-name STACK_NAME | jq XXX)
if [[ $deploymentStatus == YOUR_TERMINATE_CONDITION ]]then
aws cloudformation cancel-update-stack --stack-name STACK_NAME
fi
推荐阅读
- php - 如何防止 OctoberCMS 创建重复文件
- mysql - 更新> 0的第一行字段直到它达到0而不是从下一行减去?
- openssl - 如何验证 CRL 和证书是从同一个 CA 颁发的(使用相同的私钥签名)
- node.js - queryRunner.getRepository(SomeEntity).save(someEntity) 不起作用,而 someEntity.save() 起作用
- wordpress - 带有 ssl over nginx 的 Wordpress 无法加载 css|js
- javascript - 由于 Django 不允许在其他文件中使用内置标签,如何解决 JavaScript 外部文件的翻译/本地化问题?
- javascript - 如何使用猫鼬将推送对象添加到数据库?
- r - 根据另一列中的唯一值转置一列中的数据
- django - 从在 WSL 上运行的 django 连接到在 Windows 上运行的 Postgres
- logging - 在日志资源管理器上查看 pgAudit 和 data_access 日志的权限