Amazon web services 即使更改集为空,也要执行CloudFormation
我们有一个Amazon web services 即使更改集为空,也要执行CloudFormation,amazon-web-services,amazon-cloudformation,Amazon Web Services,Amazon Cloudformation,我们有一个CloudFormation(Git中的yaml),它使用cfn hup从S3下载配置文件。当s3上的配置文件发生更改时,我们不能仅仅创建一个新的变更集并执行它,因为变更集是空的CloudFormation当然没有看到S3上配置文件的变化。我们如何解决这个问题?我刚刚测试过的一个解决方案有两个组成部分: 一个虚拟模板参数,您可以在每次更改Init节时更改该参数。这意味着每次在s3中获得新的配置文件时,例如: ConfigUpdateRequired: Type: String
CloudFormation
(Git中的yaml),它使用cfn hup
从S3下载配置文件。当s3
上的配置文件发生更改时,我们不能仅仅创建一个新的变更集并执行它,因为变更集是空的CloudFormation
当然没有看到S3
上配置文件的变化。我们如何解决这个问题?我刚刚测试过的一个解决方案有两个组成部分:
一个虚拟模板参数,您可以在每次更改Init
节时更改该参数。这意味着每次在s3中获得新的配置文件时,例如:
ConfigUpdateRequired:
Type: String
Default: some-value
Description: Change me when a config changes
Init
部分中引用参数的伪文件或env变量,例如:
files:
/tmp/dummyfile:
content: !Sub "${ConfigUpdateRequired}"
每次要更新配置文件时,都要修改ConfigUpdateRequired
参数。这将修改/tmp/dummy文件
<代码>cfn hup随后将检测更改并更新
显然,通过
CodePipline
,或者当S3中的配置文件更改并设置所需的configupdater的一些新值时触发堆栈更新的任何事情,所有这些过程都可以自动化。我刚刚测试过的一个解决方案有两个组件:
一个虚拟模板参数,您可以在每次更改Init
节时更改该参数。这意味着每次在s3中获得新的配置文件时,例如:
ConfigUpdateRequired:
Type: String
Default: some-value
Description: Change me when a config changes
Init
部分中引用参数的伪文件或env变量,例如:
files:
/tmp/dummyfile:
content: !Sub "${ConfigUpdateRequired}"
每次要更新配置文件时,都要修改ConfigUpdateRequired
参数。这将修改/tmp/dummy文件
<代码>cfn hup
随后将检测更改并更新
显然,所有这些过程都可以通过
CodePipline
实现自动化,或者,当S3中的配置文件发生更改时,任何可能触发堆栈更新并设置ConfigUpdateRequired
的新值的东西,您可以始终在Init
部分创建一些条目,在设置更改时更新这些条目。名称包含当前时间戳的文件。触发cfn hup的东西。@Marcin thx获取提示。我将对它进行测试,但我不确定它是否会创建一个新的变更集(因为模板中的任何代码都不会更改)。不确定。可以检查。您可以在Init
部分创建一些条目,在设置更改时更新这些条目。名称包含当前时间戳的文件。触发cfn hup的东西。@Marcin thx获取提示。我将对它进行测试,但我不确定它是否会创建一个新的变更集(因为模板中的任何代码都不会更改)。不确定。我可以查一下。