如何做一个terraform数据源模块?

时间:2019-06-03 10:16:53

标签: terraform

我想做一个数据源模块,但是不确定如何声明它们?不同的帐户将使用相同的帐户,并且它们已经存在。

数据源与iam和政策有关。 我知道通常你会这么做:

module "iam" {
source = "folder"
name = "blabla"
... }

非常感谢!

1 个答案:

答案 0 :(得分:0)

您可以为此创建自己的“环境” 。我们将其命名为general

如果您为其分配了自己的后端并将其配置为使用 S3存储桶作为远程存储(无论如何,如果与多个贡献者一起工作,建议您这样做)与terraform_remote_state。 只需使用

general的状态导入到您的环境中
data "terraform_remote_state" "general" {
    backend = "s3"

    config {
        region = "..."   # e.g. "eu-central-1"
        bucket = "..."   # the remote-storage bucket name of 'general'
        key    = "..."   # e.g. "environments/general/terraform.tfstate" (as defined in the 'general' backend!
  }
}

然后,如果您将资源声明为输出变量 ,则可以使用ami = "${data.terraform_remote_state.general.ami}"从该状态访问资源:

output "ami" {
    description = "The ID of the default EC2 AMI"
    value       = "${var.ami}" 
}

当然,您也可以输出资源属性:

output "vpc_id" {
    description = "The ID of the created VPC"
    value       = "${aws_vpc.vpc.id}"
}