更新堆栈中的CloudFormation等待条件

Lui*_*rme 11 amazon-web-services aws-cloudformation

我有一个云形成模板,当用户数据脚本完成执行时,我设置了一个等待条件来接收信号.这完美!

现在我使用cfn-hup用新版本更新我的应用程序.我使用新参数更新堆栈,脚本下载新版本并将其安装在服务器上.但由于我没有更新等待条件资源,因此不会重新创建它,它不会等到信号.反正有没有迫使等待条件资源娱乐?

小智 1

要使用 CloudFormation 更新应用程序,您可以更新实例或 LaucnConfig 项的“元数据”部分中的数据。在您的情况下,您可以更改“元数据”部分中引用的参数值。我猜“来源”正在更新?您的实例上的 cron 作业设置为运行 cfn-hup,当它运行时,它会读取 CloudFormation 堆栈中的信息并发现它已更改。然后它执行 hooks.conf 文件中指定的操作(或 hooks.d 目录中的文件中指定的操作),通常是运行 cfn-init。命令 cfn-init 从指定的源检索所有文件,并运行“元数据”部分中指定的所有命令。结果是更新的应用程序。

对于“重新激活”的等待条件,必须告诉它一些东西,顺便说一句,我认为这是不可能的。由于您唯一要更改的是实例元数据,并且所有操作都发生在实例本地,因此我认为您尝试做的事情是不可能的。必须创建一个新的等待条件并由 cfn-signal 发出信号(我相信必须在 hooks.conf 中调用)。一个有趣的场景:如果发生以下情况怎么办:您重命名等待条件并更改更新的元数据。实例无法发出完成信号,CloudFormation 将模板回滚到之前的状态。在下次调用 cfn-hup 时,实例发现堆栈已更改,但恢复挂起并且再次无法发出完成信号。我们会陷入无限循环吗?