gpt4 book ai didi

amazon-web-services - Terraform 查找 AWS 区域

转载 作者:行者123 更新时间:2023-12-03 13:44:34 25 4
gpt4 key购买 nike

我的 main.tf 文件中有以下代码:

provider "aws" {
access_key = "${var.aws_access_key}"
secret_key = "${var.aws_secret_key}"
region = "us-east-1"
alias = "us-east-1"
}

provider "aws" {
access_key = "${var.aws_access_key}"
secret_key = "${var.aws_secret_key}"
region = "us-west-1"
alias = "us-west-1"
}

module "us-east_vpc" {
source = "./setup-networking"

providers = {
"aws.region" = "aws.us-east-1"
}
}

module "us-west_vpc" {
source = "./setup-networking"

providers = {
"aws.region" = "aws.us-west-1"
}
}

然后在我的模块文件中,我有:
provider "aws" {
alias = "region"
}

resource "aws_vpc" "default" {
provider = "aws.region"
cidr_block = "${lookup(var.vpc_cidr, ${aws.region.region})}"
enable_dns_hostnames = true

tags {
Name = "AWS VPC"
}
}

resource "aws_internet_gateway" "default" {
provider = "aws.region"
vpc_id = "${aws_vpc.default.id}"
}

resource "aws_subnet" "default" {
provider = "aws.region"
vpc_id = "${aws_vpc.default.id}"

cidr_block = "${lookup(var.subnet_cidr, ${aws.region.region})}"
availability_zone = "aws.region"

tags {
Name = "AWS Subnet"
}
}

resource "aws_route_table" "default" {
provider = "aws.region"
vpc_id = "${aws_vpc.default.id}"

route {
cidr_block = "0.0.0.0/0"
gateway_id = "${aws_internet_gateway.default.id}"
}

tags {
Name = "Main Gateway"
}
}

正如您在模块文件代码中看到的那样,我正在尝试查找以从映射变量中查找 VPC CIDR 掩码和子网 CIDR 掩码。

问题是我似乎无法弄清楚如何让该区域用作查找值。

如果我对这些值进行硬编码:
cidr_block = "10.10.0.0/16"
cidr_block = "10.10.10.0/24"

该脚本按预期工作,但我不想对这些值进行硬编码。

有更多 Terraform 经验的人可以帮助我了解如何正确引用该区域以查找正确的值吗?

最佳答案

我一直在为不同的问题寻找相同的答案。我想获取角色名称的区域,我可以通过以下方式获取信息:

1.- 创建一个类似 data.tf 的文件并添加此信息:

data "aws_region" "current" {}

2.- 通过在任何 TF 文件中调用此变量从数据中获取信息:
name = "${var.vpc-name}-${data.aws_region.current.name}-Bastion-Role"

这样它会得到你正在执行代码的区域,你不必弄乱 provider.tf文件。

关于amazon-web-services - Terraform 查找 AWS 区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51619602/

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