Terraform环境相关技巧

假设我们继续讨论,存在以下三个环境。

    • dev: 開発環境

 

    • stg: ステージング環境

 

    prd: 本番環境

在工作空间中准备并建立开发环境来推进构建。

$ terraform workspace new dev
$ terraform workspace new stg
$ terraform workspace new prd
$ terraform workspace list
* default
  dev
  prd
  stg
$ terraform env select dev

请参考此链接:https://www.terraform.io/docs/state/workspaces.html#using-workspaces

在Terraform中使用环境信息。

简单的调用

count = "${terraform.env}"

根据不同的环境切换变量的内容。

变量定义

variable "demo" {
  type = "map"
  default = {
    dev.comment = "開発環境だよー"
    stg.comment = "ステージングだよー"
    pro.comment = "本番だよー"

    dev.instance_count = 1
    stg.instance_count = 3
    prd.instance_count = 10
  }
}

使用侧面

comment = "${lookup(var.demo, "${terraform.env}.comment")}"
count = "${lookup(var.demo, "${terraform.env}.instance_count")}"

根据不同的环境调整资源数量。

直接使用在上面定义的变量。

resource "aws_lambda_function" "log_warner" {
  count = "${lookup(var.demo, "${terraform.env}.instance_count")}"
~~~~~以下略~~~~~~

在开发环境中不创建资源。

在不需要警報的开发环境中使用

resource "aws_lambda_function" "log_alart" {
  count = "${terraform.env == "dev" ? 0 : 1}"
~~~~~以下略~~~~~~
广告
将在 10 秒后关闭
bannerAds