我有一个使用自定义宏来生成模板的一部分的云形成模板。宏的lambda使用模板参数(通过传入事件中的templateParameterValue
字段)来生成模板片段。
当我更改Cloudformation堆栈的参数时,我得到一个错误:
提交的信息不包含更改。提交不同的信息以创建更改集。
如果我使用CLI,我会得到类似的错误:
调用UpdateStack操作时发生错误(ValidationError):不执行任何更新。
我正在更改的参数仅由宏使用,而不是模板的其余部分。
当我更新这些参数时,如何使 Cloudformation 使用宏重新处理模板?
在使用AWS Support后,我了解到您必须再次提供模板才能重新处理宏。
即使它是相同的模板,它也会导致宏被重新处理。
您可以通过控制台 UI(通过再次上传模板文件)或 CLI(通过再次传递模板/模板 URL)执行此操作。
我最近在使用count宏创建实例时遇到了这种情况。
我发现,通过将模板的这一部分移动到嵌套堆栈中并传递参数,我可以只修改宏使用的参数。拥有独立的堆栈确实需要做更多的工作,但是它允许我按照自己的意愿修改父堆栈的参数。