首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对地形中的几个环境使用相同的设置

对地形中的几个环境使用相同的设置
EN

Server Fault用户
提问于 2018-03-01 10:17:15
回答 1查看 46关注 0票数 0

我需要使用Terraform在AWS上构建几个环境。大多数设置适用于所有环境--我如何避免代码重复?

代码语言:javascript
复制
resource "aws_elastic_beanstalk_application" "app" {
  name = "${var.appName}"
  description = ""
} 

resource "aws_elastic_beanstalk_environment" "app_env" {
  name                = "${var.envName}"
  application         = "${aws_elastic_beanstalk_application.app.name}"
  solution_stack_name = "64bit Amazon Linux 2017.09 v2.8.4 running Multi-container Docker 17.09.1-ce (Generic)"

  #the same for all envs
  setting { 
    namespace = "aws:ec2:vpc"
    name      = "VPCId"
    value     = "vpc-myVpcId"
  },
   #changes for each env
   setting {
        namespace =  "aws:elasticbeanstalk:application:environment",
        name =  "SERVICE_NAME",
        value =  "${var.ServiceName}"
    },

  resource "aws_elastic_beanstalk_application" "app" {
  name = "${var.appName}"
  description = ""
} 

resource "aws_elastic_beanstalk_environment" "app_env_2" {
  name                = "${var.envName}"
  application         = "${aws_elastic_beanstalk_application.app.name}"
  solution_stack_name = "64bit Amazon Linux 2017.09 v2.8.4 running Multi-container Docker 17.09.1-ce (Generic)"

  #the same for all envs
  setting { 
    namespace = "aws:ec2:vpc"
    name      = "VPCId"
    value     = "vpc-myVpcId"
  },
   #changes for each env
   setting {
        namespace =  "aws:elasticbeanstalk:application:environment",
        name =  "SERVICE_NAME",
        value =  "${var.ServiceName_2}"
    },


}  
EN

回答 1

Server Fault用户

发布于 2018-03-01 18:20:10

有两种方法可以做到这一点。

  1. 使用环境变量,如下所示:变量
  2. 使用提供默认变量模块的全局模块

两者各有优缺点。Env,给您不编写更多代码的自由,但是它是运行时env特定的。

那么,模块,需要编写一个模块:)

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/899459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档