gpt4 book ai didi

Terraform:使用局部变量

转载 作者:行者123 更新时间:2023-12-04 03:03:17 26 4
gpt4 key购买 nike

我试图理解:- 如何使用定义的本地人 here .

所以,我的目录结构是这样的: 我的例子/ 模块/ 测试/ 安全组/ 主程序 专有网络/ 主.tf

my-examples/modules/test/vpc/main.tf 中的代码:

variable "vpc_name" {
default = "Test"
}

resource "aws_vpc" "test_vpc" {
cidr_block = "172.31.0.0/16"
enable_dns_support = true
enable_dns_hostnames = true

tags {
Name = "${var.vpc_name}:VPC"
Environment = "${var.vpc_name}"
}
}

locals {
id_vpc = "${aws_vpc.test_vpc.id}"
}

module "security_groups" {
source = "../security-groups"
id_vpc = "${local.id_vpc}"
}

想法是能够在 my-examples/modules/security-group/main.tf 中使用 id_vpc ,如下所示:

resource "aws_security_group" "bastion_sg" {
vpc_id = id_vpc
name = "Bastion-SG"

ingress {
from_port = 22
to_port = 22
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}

}

然而,我一直收到这个错误: 错误:

  * 1 error(s) occurred:

* module root: module security_groups: id_vpc is not a valid parameter

有人可以向我解释为什么没有评估局部变量吗?将不胜感激。谢谢。

最佳答案

模块 security_groups 中的名称看起来不错。但是您确实对模块 security_groups

中的代码有疑问

请更改

来自

resource "aws_security_group" "bastion_sg" {
vpc_id = id_vpc
name = "Bastion-SG"
...
}

resource "aws_security_group" "bastion_sg" {
vpc_id = ${var.id_vpc}
name = "Bastion-SG"
...
}

同时在模块中定义变量id_vpc

关于Terraform:使用局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47007509/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com