如何解决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 举报,一经查实,本站将立刻删除。