首页 > 解决方案 > 这是否可以将一个 terraform 云工作区的输出用作另一个工作区中的变量?

问题描述

以下是更多细节:

Workspace-A(基本堆栈):此工作区包含将创建 AWS 的代码:VPC、SG、RouteTables、子网和相关关联等。

Workspace-B(Service-1 Stack):该工作区包含用于创建 AWS : ALB、一些使用 Fargate 的 ECS 容器以及与该服务相关的一些其他组件的代码。

现在,在上述情况下,任何服务(Service-1、2、3 等)都将使用 Workspace-A 创建的 VPC/基础堆栈,我们如何使用 Workspace A(VPC、SG、子网等)的输出作为变量工作区-B 以便工作区-B 可以使用这些 VPC 和其余组件。

标签: terraformterraform-provider-aws

解决方案


您正在寻找的是 Terraform 数据源:

https://www.terraform.io/docs/configuration/data-sources.html

因此,最好的做法是在 Workspace-A 中创建基础架构,然后查询提供程序以在 Workspace-B 中加载该基础架构,而不是将输出从一个配置传递到另一个配置。

我建议您使用唯一标识符标记示例中每个工作区创建的资源,以实现一般可追溯性,并且您可以使用数据源轻松查找由其他 Terraform 配置创建的资源。


推荐阅读