【问题标题】:How to use a waitcondition in a cloudformation template to wait for RDS?如何在cloudformation模板中使用waitcondition来等待RDS?
【发布时间】:2023-03-22 02:59:01
【问题描述】:

Here表示可能的场景是设置一个waitcondition和对应的handle来等待一个RDS实例的配置:

您还可以在其他资源上使用 DependsOn 属性。为了 例如,您可能希望创建一个 RDS 数据库实例和一个数据库 在创建 EC2 实例之前先在该数据库实例上配置 使用该数据库。在这种情况下,您创建一个等待条件 具有指定数据库实例的 DependsOn 属性,并且您 创建具有 DependsOn 属性的 EC2 实例资源 指定等待条件。这将确保 EC2 实例 只会在数据库实例和等待之后直接创建 条件已完成。

在 EC2 实例上,我可以将句柄传递给用户数据并让脚本调用 URL 来解决等待条件,或者直接通过 cfn-signal 解决它。但是如何从没有用户数据或“AWS::CloudFormation::Init”的 RDS 实例中做到这一点?我了解 DependsOn 部分,但我看不到如何/从何处将信号发送到等待条件。

编辑: 同时我的印象是,任何应该配置数据库的资源/脚本也必须解决等待条件,只是在文本中没有提到。无法从 RDS 进行解析(即向条件的预签名 URL 发送信号或调用该 URL)。

【问题讨论】:

    标签: amazon-web-services amazon-ec2 amazon-cloudformation


    【解决方案1】:

    DependsOn 属性在 CloudFormation 模板中使用,因此在将 DependsOn 属性添加到 CloudFormation 资源时会间接创建等待条件。

    请查看this page 中的第一个示例,了解使用 RDS 和 EC2 的解决方案,就像您需要做的一样;)

    【讨论】:

    • 是的,它被创建了,但从未得到解决。当 RDS 的创建准备就绪(但尚未配置)时,将创建等待条件。 EC2 实例可以解决等待条件,但只有在等待条件解决时才会创建它。
    • 不确定你的意思是什么'它永远不会得到解决'...等待条件应该导致 EC2 实例仅在创建 RDS 实例之后创建。你期待别的吗?
    • 其实是的。等待条件将坐在那里等待来自预签名 URL 或 cfn 信号的信号,在此示例中只有 EC2 实例可以传递。但是只有在等待条件完成后才会创建 EC2 实例,即从某个地方得到它的信号。这就是为什么这个例子对我没有意义。
    猜你喜欢
    • 2017-07-08
    • 2019-08-20
    • 1970-01-01
    • 1970-01-01
    • 2016-11-16
    • 2017-05-12
    • 2016-05-08
    • 2021-04-22
    • 2017-01-15
    相关资源
    最近更新 更多