【问题标题】:deploying lambdas with environment variable conditions使用环境变量条件部署 lambdas
【发布时间】:2020-04-15 01:09:33
【问题描述】:

我已经尝试使用 terraform 部署 1 个 lambda。问题是 - 我打算只使用我制作的当前代码部署 lambda,如果我需要使用相同的代码但具有不同的环境变量部署 2nd、3rd 和 4rth lambda 怎么办?请参阅下面的示例场景

LAMBDA-1 = hello-Earth
ENV VARS:
    KMS-KEY-1 = data.aws_kms_key.key1.id
    KMS-KEY-2 = data.aws_kms_key.key2.id
    ENV = DEV

LAMBDA-2 = hello-Mars
ENV VARS:
    KMS-KEY-1 = data.aws_kms_key.key1.id
    KMS-KEY-2 = data.aws_kms_key.key2.id
    ENV = SQA
    VARIETY = HOT
    SIZE = LARGE

LAMBDA-3 = hello-Neptune
ENV VARS:
    KMS-KEY-1 = data.aws_kms_key.key1.id
    KMS-KEY-2 = data.aws_kms_key.key2.id
    ENV = UAT
    VARIETY = COLD
    SIZE = MEDIUM
    DISTANCE = FAR

LAMBDA-4 = hello-Pluto
ENV VARS
    ENV = PROD
    SIZE = SMALL
    DISTANCE = FAR

【问题讨论】:

  • 你试过了吗?到目前为止,您编写了哪些 Terraform 代码?您可以将其编辑到您的问题中吗?它会出错吗?如果是这样,请在您的问题中包含完整的错误。

标签: aws-lambda terraform terraform-provider-aws


【解决方案1】:

aws_lambda_function 资源具有environment argument。您可以在其中定义环境变量。

因此,您的 lambda 函数资源将是相同的,但具有不同的环境参数,如下所示:

resource "aws_lambda_function" "hello-Earth" {
  filename      = "lambda_function_payload.zip"
  function_name = "hello-Earth"
  role          = "${aws_iam_role.iam_for_lambda.arn}"
  handler       = "exports.test"

  source_code_hash = "${filebase64sha256("lambda_function_payload.zip")}"

  runtime = "nodejs8.10"

  environment {
    variables = {
      KMS-KEY-1 = data.aws_kms_key.key1.id
      KMS-KEY-2 = data.aws_kms_key.key2.id
      ENV = "UAT"
      VARIETY = "COLD"
      SIZE = "MEDIUM"
      DISTANCE = "FAR"
    }
  }
}

resource "aws_lambda_function" "hello-Mars" {
  filename      = "lambda_function_payload.zip"
  function_name = "hello-Mars"
  role          = "${aws_iam_role.iam_for_lambda.arn}"
  handler       = "exports.test"

  source_code_hash = "${filebase64sha256("lambda_function_payload.zip")}"

  runtime = "nodejs8.10"

  environment {
    variables = {
      KMS-KEY-1 = data.aws_kms_key.key1.id
      KMS-KEY-2 = data.aws_kms_key.key2.id
      ENV = "SQA"
      VARIETY = "HOT"
      SIZE = "LARGE"
    }
  }
}

【讨论】:

    猜你喜欢
    • 2022-10-23
    • 2021-02-17
    • 2020-03-06
    • 2018-09-25
    • 2019-11-21
    • 1970-01-01
    • 1970-01-01
    • 2016-03-05
    • 2013-01-11
    相关资源
    最近更新 更多