Man*_*ddy 1 terraform terraform-provider-aws
我有一个现有的 VPC,它有 4 个 CIDR,我需要检索这些 CIDR 并将它们作为入站规则添加到安全性中。有没有办法在 Terraform 中做到这一点?我没有找到一种方法来做到这一点 Terraform
data "aws_vpc" "example_vpc" {
id = "vpc-xxxxx" # Replace with the ID of your VPC
}
output "vpc_cidr_block" {
value = "${data.aws_vpc.example_vpc.cidr_block}"
}
Run Code Online (Sandbox Code Playgroud)
我已尝试上面的代码片段,但输出值仅给出主要 CIDR。
Terraform 版本:v0.14.5
要获取默认 CIDR 块和关联的CIDR块,您需要使用数据源cidr_block_associations的属性aws_vpc:
data "aws_vpc" "example" {
id = "vpc-0f67a3b2exxxxxx"
}
resource "aws_security_group_rule" "example" {
type = "ingress"
from_port = 22
to_port = 22
protocol = "tcp"
cidr_blocks = data.aws_vpc.example.cidr_block_associations[*].cidr_block
security_group_id = "sg-0e40fe769816xxxxx"
}
Run Code Online (Sandbox Code Playgroud)
该cidr_block_associations属性如下所示:
cidr_block_associations = [
{
association_id = "vpc-cidr-assoc-0b3673ed50fcxxxxx"
cidr_block = "172.31.0.0/16" # default CIDR
state = "associated"
},
{
association_id = "vpc-cidr-assoc-050fdc9392e9xxxxx"
cidr_block = "172.32.0.0/20" # associated CIDR
state = "associated"
},
]
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,它是一个具有 3 个属性的对象列表。为了仅提取cidr_block值,我在示例中使用了Terraform splat 表达式。
| 归档时间: |
|
| 查看次数: |
1078 次 |
| 最近记录: |