导出堆栈输出值
要在堆栈之间共享信息,请导出堆栈的输出值。位于同一 Amazon 账户和区域中的其他堆栈可导入已导出的值。例如,您可能有一个联网堆栈,该堆栈将导出公有 Web 服务器的子网和安全组的 ID。具有公有 Web 服务器的堆栈可轻松导出这些联网资源。您无需对堆栈的模板中的资源 ID 进行硬编码或将 ID 作为输入参数传递。
要导出某个堆栈的输出值,请使用该堆栈的模板的 Output 部分的 Export
字段。要导入这些值,请在其他堆栈的模板中使用 Fn::ImportValue 函数。有关演练和示例模板,请参阅演练:引用另一个 Amazon CloudFormation 堆栈中的资源输出。
注意
在另一个堆栈导入输出值后,您将无法删除正在导出输出值的堆栈或修改已导出的输入值。必须先删除所有导入,然后才能删除导出堆栈或修改输出值。
导出堆栈输出值与使用嵌套堆栈
嵌套堆栈是您使用 AWS::CloudFormation::Stack 资源在其他堆栈中创建的堆栈。利用嵌套堆栈,您可从一个堆栈部署和管理所有资源。您可将来自嵌套堆栈组中的一个堆栈的输出用作该组中的另一个堆栈的输入。这不同于导出值。
如果您要将信息共享隔离在嵌套堆栈组中,建议您使用嵌套堆栈。要与其他堆栈 (不只是在嵌套堆栈组中) 共享信息,请导出值。例如,您可使用某个子网创建一个堆栈,然后导出其 ID。其他堆栈可通过导出该子网的 ID 来使用子网;所有堆栈都不需要创建自己的子网。只要堆栈导入子网 ID,您就无法更改或删除它。
列出导出的输出值
要查看您可导入的值,请使用 Amazon CloudFormation 控制台、Amazon CLI 或 Amazon CloudFormation API 列出所有导出的输出值。Amazon CloudFormation 显示当前区域的已导出输出的名称和值,以及已从中导出这些输出的堆栈。要在堆栈模板中引用已导出输出值,请使用导出名称和 Fn::ImportValue 函数。
列出已导出输出值(控制台)
-
在 Amazon CloudFormation 控制台
中,从 CloudFormation 导航窗格中选择 Exports (导出)。
列出已导出输出值 (Amazon CLI)
列出已导出输出值 (API)
-
运行
ListExports
API。