在terraform中,如何获得数据资源的结果?
地形v0.12.17。我读过,但它没有告诉我如何使用结果 假设我想从最新的AWS快照创建AWS卷。如何使用数据{}资源获取最新快照,然后使用它创建卷在terraform中,如何获得数据资源的结果?,terraform,terraform-provider-aws,Terraform,Terraform Provider Aws,地形v0.12.17。我读过,但它没有告诉我如何使用结果 假设我想从最新的AWS快照创建AWS卷。如何使用数据{}资源获取最新快照,然后使用它创建卷 provider "aws" { region = "us-east-1" } data "aws_ebs_snapshot_ids" "jenkins_master" { filter { name = "tag:Name" values = ["jenkins-master"] } } resourc
provider "aws" {
region = "us-east-1"
}
data "aws_ebs_snapshot_ids" "jenkins_master" {
filter {
name = "tag:Name"
values = ["jenkins-master"]
}
}
resource "aws_ebs_volume" "jenkins_master_ebs" {
availability_zone = "us-east-1a"
size = ??? // taken from result of above data{}
snapshot_id = ??? // taken from result of above data{}
tags = {
Name = "jenkins-master-ebs"
}
}
根据Terraform文档,您将得到一个列表,因此您可以使用如下内容:
resource "aws_ebs_volume" "jenkins_master_ebs" {
availability_zone = "us-east-1a"
size = 50 # Your custom size
snapshot_id = data.aws_ebs_snapshot_ids.jenkins_master.ids.0 # First element
tags = {
Name = "jenkins-master-ebs"
}
}
这是一个很好的答案,不过请注意,
[0]
是访问第一个索引的更典型语法,如data.aws\u ebs\u snapshot\u ids.jenkins\u master.ids[0]
中所述。.0
表单是一种传统语法,仅在向后兼容较旧的Terraform版本时才受支持。