CloudFormation 中的 CreationPolicy 和 DependsOn 属性有什么区别?

mel*_*ous 1 amazon-web-services aws-cloudformation

有人可以通过一个易于理解的示例来解释 CloudFormation 中 CreationPolicy 和 DependsOn 属性之间的区别吗?

Mar*_*cin 6

很少有。关键是:

  • CreationPolicy仅适用于三种资源(AutoScalingGroup、Instance 和 WaitCondition),而DependsOn可用于任何资源

  • 的主要目的CreationPolicy等待来自实例的“信号”。当您使用 CFN 创建实例时,您可以将引导脚本添加到User Data. 例如,安装一些软件包,设置一些配置文件。CFN 不检查引导脚本是否成功执行。这是有问题的,因为您的引导脚本可能会失败,而您直到太晚才会知道这一点。为了解决这个问题,您可以添加 CreationPolicy到实例中,以便它等待来自实例的cfn-signal。有了这个,您的引导脚本可以向 CFN 发出脚本执行成功的信号。

  • 的主要目的DependsOn是在 CFN 中创建资源的相对顺序。就其性质而言,CFN 尝试并行创建资源。这可能会导致问题,例如,如果您的实例需要预先创建一些其他资源(例如 RDS 数据库)。在这种情况下,您可以在RDS数据库创建成功后告诉CFN创建实例。