Создание лямбда-функции, требующей хотя бы одну переменную среды - PullRequest
0 голосов
/ 29 сентября 2019

У меня проблема с созданием двух лямбда-функций. Моя функция «controller» разворачивается без проблем, но моя функция «chunker» выдает ошибку «Ошибка: в среде ожидается хотя бы одно поле»

Обе функции почти идентичны, с разными zip-файлами и переменными среды.


  function_name = format("ancb-chunker-%s",var.env)

  s3_bucket = aws_s3_bucket.ancb["lambda"].id
  s3_key = var.lambda_zip_chunker

  handler = "handler.chunker"
  runtime = "nodejs8.10"

  role = aws_iam_role.lambda_exec.arn

  environment {
      variables = {
          TEST = "yes"
          ORIGINAL_BUCKET = aws_s3_bucket.ancb["original"].id
          TO_PROCESS_BUCKET = aws_s3_bucket.ancb["to-process-prod"].id
          ENVIRONMENT = var.env
          CHUNK_SIZE = 5000
      }
  }
  tags = {
      Environment = var.env
      Terraform = true
  }
}
resource "aws_lambda_function" "ancb_controller" {

  function_name = format("ancb-controller-%s",var.env)

  s3_bucket = aws_s3_bucket.ancb["lambda"].id
  s3_key = var.lambda_zip_controller

  handler = "handler.controller"
  runtime = "nodejs8.10"

  role = aws_iam_role.lambda_exec.arn

  environment {
      variables = {
          DESTINATION_BUCKET = aws_s3_bucket.ancb["destination"].id
          ENVIRONMENT = var.env
          ERROR_BUCKET = aws_s3_bucket.ancb["error"].id
          GEOCODIO_APIKEY = <removed>
          GEOCODIO_ENDPOINT = <removed>
          GEOCODIO_VERSION = "v1.3"
          ORIGINAL_BUCKET = aws_s3_bucket.ancb["original"].id
          SOURCE_BUCKET = aws_s3_bucket.ancb["source"].id
          TO_PROCESS_BUCKET = aws_s3_bucket.ancb["to-process"].id
          WORKING_BUCKET = aws_s3_bucket.ancb["working"].id
      }
  }
  tags = {
      Environment = var.env
      Terraform = true
  }
}

Вот полученная ошибка:

Error: At least one field is expected inside environment

  on .terraform/modules/ancb/services/ancb/main.tf line 29, in resource "aws_lambda_function" "ancb_chunker":
  29: resource "aws_lambda_function" "ancb_chunker" {

Я ожидаю, что код будет работать для обоих, но в моем тестировании переменные окружения, которые я установил для "chunker", не работают,Если я добавлю переменные среды для «controller» в переменные «chunker», я смогу создать функцию без проблем ...

Ответы [ 2 ]

0 голосов
/ 01 октября 2019

Эта проблема была моей ошибкой. Блок обработки не существует, вместо этого он должен быть ["to-process"] TO_PROCESS_BUCKET = aws_s3_bucket.ancb ["to-process-prod"]. Id.

Извините за трату времени всех.

0 голосов
/ 30 сентября 2019

Лямбды не требуют установки каких-либо переменных окружения.

Однако вы передаете var.env, не зная больше вашей проблемы, я посмотрю здесь.

...