微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Cloudformation 对共享资源的依赖

如何解决Cloudformation 对共享资源的依赖

情况

我们在 Service A 中部署了 Service B same AWS account。他们都希望在此帐户中部署另一个包含 datalake D (Athena) 的堆栈。

Service A 和 Service B 的 cloudformation 模板是否应该依赖于 Datalake D?如果是这样,你会怎么做?或者他们应该假设它存在并且只管理他们的下游资源?

感觉你应该引用它,因为如果我们将服务 A 移到另一个帐户,人们可能会忘记这种依赖关系。另一方面,我们不希望服务 A 和 B 都部署堆栈,因为它只需要一次。

解决方法

假设A、B、D都是在同一个区域和账户创建的堆栈,你可以使用cross-stack references将D与A和B链接起来。

在这个解决方案中,堆栈 D 将 export 其输出。例如:

Outputs:
  OutputFromD:
    Value: <a-value-to-be-exported>
    Export:
      Name: <export-name>

然后,在 A 和 B 中需要 OutputFromD 的地方,可以使用 ImportValue。例如,在 A 和 B 中:

Resources:

  SomeResource:
    Properties:
      SomeProperty: !ImportValue <export-name>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。