我有一个 terraform 部署,它从 CloudFormation 堆栈部署 SNS 主题。 我导出了 SNS 主题的 ARN,但我正在努力消耗 TF 中的输出
"Outputs" : {
"ARN" : {
"Description" : "Email SNS Topic ARN",
"Value" : { "Ref" : "EmailSNSTopic" }
}
}
}
输出是 ARN。 但是我如何构造outputs.tf 文件以允许我在其他 TF 文件中获取 cf 输出?
cf 堆栈名称被命名为“TOPIC”作为示例,导出为“ARN” 阅读 TF 文档,他们有一个示例,但失败了:
data "aws_cloudformation_export" "arn" {
name = "myARN"
}
resource "aws_instance" "web" {
ami = "ami-abb07bcb"
instance_type = "t2.micro"
subnet_id = data.aws_cloudformation_export.myarn.value
}
这是正确的吗?
谢谢 尼克
最佳答案
TF 模块看起来不对。试试这个
data "aws_cloudformation_export" "my_subnet_id" {
name = "[NAME_OF_EXPORT]"
}
resource "aws_instance" "web" {
ami = "ami-abb07bcb"
instance_type = "t2.micro"
subnet_id = data.aws_cloudformation_export.my_subnet_id.value
}
并确保 name 属性拼写为 aws cloudformation list-exports
的输出,并且您位于同一区域!!
CF 导出的值在每个帐户的给定区域中必须是唯一的,因此您无需引用 CF 模板或堆栈名称。
关于Terraform 解析 Cloudformation 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64541206/