【问题标题】:AWS CloudFormation templates with circular dependency between import/export valuesAWS CloudFormation 模板在导入/导出值之间具有循环依赖关系
【发布时间】:2020-01-26 18:57:12
【问题描述】:

我有两个 CloudFormation 模板:第一个模板包含我的 Lambda 函数,第二个模板包含一个 SQS 队列。

在第一个模板中,我导出 Lambda ARN,在第二个模板中,我导出 SQS 队列 URL 和 ARN。

另外,在第一个模板中,我导入了 SQS 队列 URL 和 ARN,以将值传递给 Lambda 代码,并分别授予 Lambda 向 SQS 发送消息的权限。在第二个模板中,我导入 Lambda ARN 以授予 Lambda 向该 SQS 队列发送消息的权限。

我担心的是使用此配置创建的导入/导出值之间的循环依赖关系。在部署的那一刻,没有错误,但我想知道这是否是一个错误的配置。

【问题讨论】:

  • 它们是否需要在不同的堆栈中?因为您所描述的似乎并不理想。

标签: amazon-web-services amazon-cloudformation


【解决方案1】:

如果您使用导出/导入,唯一可行的方法是使用导入的资源条件,并且至少运行两次堆栈。这并不理想,而且删除堆栈也需要两个步骤(如果另一个堆栈从该堆栈导入导出,则无法删除堆栈)。

这里更好的解决方案是将所有依赖项放在一个堆栈中(更好的是,如果可以的话,将它们全部放在一个堆栈中)。在您的情况下,您可以创建 SQS 队列并导出它的信息,并在 lambda 堆栈中执行所有相关资源。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-04
    • 2021-04-16
    • 2018-10-13
    • 2018-04-05
    • 2016-07-21
    • 1970-01-01
    • 1970-01-01
    • 2016-09-24
    相关资源
    最近更新 更多