使用 Terraform 启动 CloudFormationTemplate

Firing up CloudFormationTemplate using Terraform

如何从 Terraform 启动 CloudFormationTemplate。 Terraform 已创建 VPC 和 SecurityGroups。如何将 vpcID 和 SecurityGroupID 传入 CFT。我已经搜索过但找不到任何相同的链接。 RTFM 在这里没有任何帮助。

为此,您应该将参数传递给 aws_cloudformation_stack 资源。

resource "template_file" "redshift_cloudformation" {
  template = "${file("redshift.cloudformation")}"

  vars {
    redshift_public_subnet_id  = "${element(split(",", terraform_remote_state.shared.output.public_subnet_ids), 0)}"
    redshift_security_group_id = "${aws_security_group.redshift.id}"
  }
}

resource "aws_cloudformation_stack" "heavy_redshift" {
  name          = "heavy-redshift"
  template_body = "${template_file.redshift_cloudformation.rendered}"

  parameters {
    MasterUsername     = "master"
    MasterUserPassword = "MasterPassword123"
  }
}

查看完整代码以获取更多示例 - https://github.com/antonbabenko/terraform-aws-devops/blob/master/extra/heavy_cf_redshift.tf#L40-L48