来自不同 AWS 账户的交叉堆栈引用

问题描述

我有两个堆栈 - A 和 B,但它们位于不同的 AWS 账户中。我想将堆栈A的资源(日志)导出到堆栈B。由于它是跨帐户的,因此正常的堆栈引用方法不起作用。我想找出最好的方法来做到这一点。

如果有人之前做过这方面的工作,请分享您是如何实施的。

解决方法

在 CloudFormation 中不支持跨账户和跨区域导出/导入。如果您想自动完成所有操作,则必须以 lambda 函数的形式在堆栈 B 中开发一个 custom resource。该函数必须能够访问和查询不同帐户中 A 中的堆栈,并将所需的属性返回到堆栈 B。

或者,您可以将堆栈 A 中的属性存储在 Acc B 创建的 parameter store 中,并使用堆栈 B 中的 dynamic references 从存储中获取值。

其他选项是参数化堆栈 B,并“手动”(可以通过 AWS CLI 或开发工具包脚本)将堆栈 A 中的必需属性作为参数传递到堆栈 B。