我想做一个数据源模块,但是不确定如何声明它们?不同的帐户将使用相同的帐户,并且它们已经存在。
数据源与iam和政策有关。 我知道通常你会这么做:
module "iam" {
source = "folder"
name = "blabla"
... }
非常感谢!
答案 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}"
}