使用 Terraform 启动 CloudFormationTemplate

Posted

技术标签:

【中文标题】使用 Terraform 启动 CloudFormationTemplate【英文标题】:Firing up CloudFormationTemplate using Terraform 【发布时间】:2016-03-18 15:12:13 【问题描述】:

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

【问题讨论】:

【参考方案1】:

为此,您应该将参数传递给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

【讨论】:

您能否尝试从链接中取出一些相关信息并将其直接包含在答案中?这样,如果您的代码发生更改,那么此答案可能对其他人仍然有用。

以上是关于使用 Terraform 启动 CloudFormationTemplate的主要内容,如果未能解决你的问题,请参考以下文章

使用 terraform 启动 EC2 实例时出错

使用Terraform部署代码和管理配置

如何通过 Terraform 启动没有密钥对的 EC2 实例?

使用 Terraform 和启动脚本创建专用网络 - Google Cloud Platform

Terraform GCP 启动脚本本地文件而不是内联文件

使用 vnet_subnet_id 通过 terraform 启动 AKS 群集 - Azure