architecture - Cloudformation 对共享资源的依赖
问题描述
情况:
我们已经Service A
部署Service B
在same AWS account
. 他们都希望在此帐户中部署另一个带有 datalake D (Athena) 的堆栈。
Service A 和 Service B 的 cloudformation 模板是否应该依赖 Datalake D?如果是这样,你会怎么做?或者他们应该只是假设它存在并且只管理他们的下游资源?
感觉你应该引用它,因为如果我们将服务 A 移动到另一个帐户,可能会忘记这种依赖关系。另一方面,我们不希望服务 A 和 B 都部署堆栈,因为它只需要一次。
解决方案
假设 A、B 和 D 都是要在同一区域和帐户中创建的堆栈,您可以使用跨堆栈引用将 D 与 A 和 B 互连。
在此解决方案中,堆栈 D 将导出其输出。例如:
Outputs:
OutputFromD:
Value: <a-value-to-be-exported>
Export:
Name: <export-name>
然后,在您需要OutputFromD
A 和 B 的地方,您将使用ImportValue。例如,在 A 和 B 中:
Resources:
SomeResource:
Properties:
SomeProperty: !ImportValue <export-name>
推荐阅读
- linux - 检查参数的特定值,如果不匹配则更改它
- docker - 继续在 TFS 上集成 docker
- r - 将逻辑运算符表与向量组合以生成组合列表
- powerbi - 组内最大差异
- java - android上的Microsoft Graph,在检索文件时响应404
- nativescript - 在 nativescript angular 应用程序上使用 Nem-library 或 nem-sdk
- android - java.lang.RuntimeException:画布:试图绘制太大(125440000字节)位图
- javascript - How to control execution of 2 blocks of code?
- python - Django ORM Group BY 并返回附加字段
- mysql - PDO 准备好的语句绑定