kol*_*man 3 terraform terraform-provider-aws
以下是更多详细信息:
工作空间-A(基础堆栈):此工作空间包含将创建 AWS 的代码:VPC、SG、路由表、子网和相关关联等。
工作区-B(Service-1 堆栈):此工作区包含用于创建 AWS 的代码:ALB、一些使用 Fargate 的 ECS 容器以及与此服务相关的一些其他组件。
现在,在上述情况下,任何服务(Service-1、2、3 等)都将使用 Workspace-A 创建的 VPC/基础堆栈,我们如何使用 Workspace A(VPC、SG、子网等)的输出作为变量工作区 B 以便工作区 B 可以使用这些 VPC 和其余组件。
小智 11
您可以通过使用'remote_state'数据源来实现此目的,为此,您必须配置 Terraform 远程后端以连接到您的 Terraform 工作区。
任何能够共享其状态的工作区都必须配置“输出”。
对于 Workspace-A,您可以将 VPC 配置为输出 -
output "vpc_id" {
description = "The VPC ID"
value = aws_vpc.my_vpc.id
}
Run Code Online (Sandbox Code Playgroud)
使用 Workspace-A 运行 terraform apply 后,为 Workspace-B 配置 tf 文件,如下所示 -
data "terraform_remote_state" "vpc" {
backend = "remote"
config = {
organization = "org-****"
workspaces = {
name = "workspace-A"
}
}
}
Run Code Online (Sandbox Code Playgroud)
此 Terraform 配置现在可以访问 Workspace-A 的输出,如下所示:
resource "aws_instance" "foo" {
# ...
subnet_id = data.terraform_remote_state.vpc.outputs.subnet_id
}
Run Code Online (Sandbox Code Playgroud)
PS - 我意识到已经晚了,但它可能对其他人有用。
| 归档时间: |
|
| 查看次数: |
4557 次 |
| 最近记录: |