The aws_cloudformation_stack
resource用作從Terraform一橋進入CloudFormation,可以使用,也可以作爲從CloudFormation遷移對terraform輔助(如你似乎在這裏做什麼),或使用一些CloudFormation的Terraform目前尚未處理的功能,如將新實例的滾動部署到ASG中。
resource "aws_cloudformation_stack" "example" {
name = "example"
parameters = {
VpcId = "${var.vpc_id}"
}
template_body = "${file("${path.module}/example.yml")}"
}
parameters
參數允許將數據從Terraform傳遞到Cloudformation堆棧。它也可以使用outputs
屬性利用結果別處Terraform的CloudFormation堆棧的,對於一個雙向集成:
resource "aws_route_53_record" "example" {
name = "service.example.com"
type = "CNAME"
ttl = 300
records = ["${aws_cloudformation_stack.example.outputs["ElbHostname"]}"]
}
如果你有一個預先存在的CloudFormation堆棧該不由Terraform管理,您可以使用the aws_cloudformation_stack
data source仍然利用其產出:
data "aws_cloudformation_stack" "example" {
name = "example"
}
resource "aws_route_53_record" "example" {
name = "service.example.com"
type = "CNAME"
ttl = 300
records = ["${data.aws_cloudformation_stack.example.outputs["ElbHostname"]}"]
}
這些功能一起使您可以將CloudFormation和Terraform有效地混合到單個系統中,以不同的組合方式進行混合,無論是遷移時的臨時措施,還是需要混合解決方案的情況下的永久臨時措施。
恐怕你必須重寫它,我不認爲你問的是可能的。 – Bram
https://www.terraform.io/docs/providers/aws/r/cloudformation_stack.html#template_url –
如果您在閱讀yml文件時遇到困難,請嘗試升級您的terraform版本。我今天看到它在.7.7中不起作用,但可以確認它在.9.3中起作用 – user1521567