带有Terraform的AWS Codebuild中的多个环境变量

问题描述

我正在使用terraform来配置AWS CodeBuild。在环境部分,我已经配置了以下内容

  environment {
    compute_type                = "BUILD_GENERAL1_SMALL"
    image                       = "aws/codebuild/standard:3.0"
    type                        = "LINUX_CONTAINER"
    image_pull_credentials_type = "CODEBUILD"

    environment_variable {
      name  = "SOME_KEY1"
      value = "SOME_VALUE1"
    }

    environment_variable {
      name  = "SOME_KEY2"
      value = "SOME_VALUE2"
    }

  }

我在Codebuild项目中要配置20多个环境变量。

是否可以创建列表并定义单个environment_variable参数来配置所有环境变量?

解决方法

您可以使用dynamic blocks来实现。

data.response

这将循环遍历在此本地设置的variable "env_vars" { default = { SOME_KEY1 = "SOME_VALUE1" SOME_KEY2 = "SOME_VALUE2" } } resource "aws_codebuild_project" "test" { # ... environment { compute_type = "BUILD_GENERAL1_SMALL" image = "aws/codebuild/standard:3.0" type = "LINUX_CONTAINER" image_pull_credentials_type = "CODEBUILD" dynamic "environment_variable" { for_each = var.env_vars content { name = environment_variable.key value = environment_variable.value } } } } 的映射(但可以作为变量传递),并为每个映射创建一个env_vars块,将名称设置为映射的键并将值更改为地图的值。