AWS лямбда-функция с терраформой - PullRequest
0 голосов
/ 24 марта 2020

Возникли некоторые проблемы при применении моего плана terraform, и я не могу точно определить, в чем проблема в нем. Я перепробовал все, о чем мог думать. Вот мой файл lambda.tf:

data "archive_file" "projectLeo_listunsubscribe_lambda_code" {
  type        = "zip"
  source_dir  = "${path.module}/../src/ProjectLeo.ListUnsubscribe"
  output_path = "${path.module}/../src/code-packaged/list-unsubscribe.zip"
}

resource "aws_lambda_function" "projectLeot_list_unsubscribe_lambda" {
  filename                       = "${data.archive_file.projectLeo_listunsubscribe_lambda_code.output_path}"
  function_name                  = "projectLeo-listunsubscribe-lambda"
  role                           = "${aws_iam_role.projectLeo_list_hygiene_role.arn}"
  handler                        = "${var.lambda_list_unsubscribe_function_handler}"
  runtime                        = "dotnetcore2.1"
  memory_size                    = "256"
  timeout                        = 120
  publish                        = true
  reserved_concurrent_executions = 1

  environment {
    variables = {
      optout-topic-arn = "${data.aws_sns_topic.projectLeo_optout_topic.arn}"
    }
  }
}

data "aws_sns_topic" "projectLeo_optout_topic" {
  name = "${var.sns_optout_topic_name}"
}

Сгенерированный план выглядит нормально, но эта ошибка генерируется после применения:

Error: Error creating Lambda function: ValidationException:
        status code: 400, request id: c16dc369-bccd-418d-a2b5-2d0383c66064

  on ..\list-unsubscribe\infrastructure\lambda.tf line 9, in resource "aws_lambda_function" "projectLeo_list_unsubscribe_lambda":
   9: resource "aws_lambda_function" "projectLeo_list_unsubscribe_lambda" {

Это довольно легкий журнал для работы с, я пытался обновлять куски по частям кода, но всегда получал один и тот же результат.

Может кто-нибудь помочь мне определить, в чем может быть проблема с моим кодом? Спасибо!

1 Ответ

1 голос
/ 27 марта 2020

Наконец-то удалось выявить проблему: переменные окружения в AWS лямбда-функции не принимают дефис (-). Я заменил его на подчеркивание, и оно прошло.

optout-topi c -arn стало optout_topic_arn

...