小编Sha*_*nde的帖子

Terraform - 如何在条件运算符中使用条件创建的资源的输出?

我有一个情况,如果用户不提供 vpc id,我必须创建 aws_vpc 资源。之后,我应该使用该 VPC 创建资源。

现在,我在创建资源时应用条件aws_vpc。例如,仅当existing_vpc为 false 时才创建 VPC:

count                = "${var.existing_vpc ? 0 : 1}"
Run Code Online (Sandbox Code Playgroud)

接下来,例如,我必须在 VPC 中创建节点。如果existing_vpc为 true,则使用var.vpc_id,否则使用从资源计算出的 VPC ID aws_vpc

但是,问题是,如果existing_vpc为 true,aws_vpc则不会创建新资源,并且三元条件无论如何都会尝试检查资源是否aws_vpc正在创建。如果没有创建,terraform 就会出错。

在 上使用条件运算符时出现错误的示例aws_subnet

Resource 'aws_subnet.xyz-subnet' not found for variable 'aws_subnet.xyz-subnet.id'
Run Code Online (Sandbox Code Playgroud)

导致错误的代码是:

subnet_id = "${var.existing_vpc ? var.subnet_id : aws_subnet.xyz-subnet.id}"
Run Code Online (Sandbox Code Playgroud)

如果两者相互依赖,我们如何创建条件资源并根据它们为其他配置分配值?

terraform terraform-provider-aws

29
推荐指数
2
解决办法
2万
查看次数

标签 统计

terraform ×1

terraform-provider-aws ×1