用于参数化 DeletionPolicy 的相同 CloudFormation 模板?
Same CloudFormation template to parameterize DeletionPolicy?
作为 DevOps 人员,我想使用相同的模板来配置 Dev 和 Prod 堆栈...其中开发堆栈不应有任何 DeletionPolicy
,但 Prod 堆栈应使用 DeletionPolicy
因此,乍一看,CFT 提供了一个不错的工具,但是......无法参数化 S3 DeletionPolicy
(我至少能够找到)......
这是我挖掘的一些话题
- https://forums.aws.amazon.com/message.jspa?messageID=560586
- https://www.unixdaemon.net/cloud/cloudformation-annoyance-deletion-policy-parameters/
来自 AWS 的 建议的解决方法 是使整个资源有条件,这导致我们复制资源并创建 „Deletable
和 „Undeletable
版本它和所有相关资源都应该处理这种情况...
这看起来很不稳定和臃肿,有没有办法参数化这个或更好的方法来实现我的最终目标?
CFT 中似乎没有资源复制以外的选项。
您可以做的是使用 Python 脚本创建一个 Lambda 来设置 S3 删除策略。该 Lambda 函数可以在 CloudFormation 堆栈创建期间通过 SNS 触发。这里描述了如何配置它:
但在您的特定情况下,我会在同一 CFT 中进行资源重复。
作为 DevOps 人员,我想使用相同的模板来配置 Dev 和 Prod 堆栈...其中开发堆栈不应有任何 DeletionPolicy
,但 Prod 堆栈应使用 DeletionPolicy
因此,乍一看,CFT 提供了一个不错的工具,但是......无法参数化 S3 DeletionPolicy
(我至少能够找到)......
这是我挖掘的一些话题
- https://forums.aws.amazon.com/message.jspa?messageID=560586
- https://www.unixdaemon.net/cloud/cloudformation-annoyance-deletion-policy-parameters/
来自 AWS 的 建议的解决方法 是使整个资源有条件,这导致我们复制资源并创建 „Deletable
和 „Undeletable
版本它和所有相关资源都应该处理这种情况...
这看起来很不稳定和臃肿,有没有办法参数化这个或更好的方法来实现我的最终目标?
CFT 中似乎没有资源复制以外的选项。
您可以做的是使用 Python 脚本创建一个 Lambda 来设置 S3 删除策略。该 Lambda 函数可以在 CloudFormation 堆栈创建期间通过 SNS 触发。这里描述了如何配置它:
但在您的特定情况下,我会在同一 CFT 中进行资源重复。