由其他资源组成的自定义资源?

时间:2016-11-03 22:49:18

标签: terraform

我目前正在开发一个Terraform项目,以自动化AWS中的基础架构。由于我们使用的是非常一致的模式,我的想法是创建自定义的Terraform资源,这些资源由多个AWS资源组成,可以解决问题。

在自定义Go Terraform资源中是否有一种方法可以简单地由多个AWS资源组成?我想要一个名为app_stack的资源,它由自动缩放组,弹性负载均衡器和Route 53名称组成。我希望我的模块只接受最少的参数,以便最终用户屏蔽实现细节。

Terraform有可能吗?

1 个答案:

答案 0 :(得分:1)

我想你想使用Terraform module。模块是作为一个组进行管理的资源集合。

您可以公开模块运行所需的任何变量,因此在您的情况下,DNS名称,ASG中需要的实例数等等。然后,当您将其包含在terraform配置中时,您可以指定块,例如:

module "myapp" {
  source = "./app_stack"
  dns_name = "myapp.example.com"
  instances = 5
}

module "meteordemo" {
  source = "./app_stack"
  dns_name = "meteor.example.com"
  instances = 1
}

The docs包含更全面的解释。以下是github上的一些example modules供参考。