AWS Lambda@Edge отладка

В настоящее время я работаю над функцией lambda@edge. Я не могу найти журналы в CloudWatch или другие варианты отладки.

При запуске лямбды с помощью кнопки "Тест" логи записываются в CloudWatch.

Когда лямбда-функция запускается событием CloudFront, журналы не записываются.

Я на 100% уверен, что триггер события работает, и я вижу его результат.

Есть идеи, как поступить?

Спасибо вперед,
Йосси

2 ответа

Решение

1) Убедитесь, что вы предоставили разрешение для lambda отправлять журналы в cloudwatch. Ниже приведена политика AWSLambdaBasicExecutionRole, которую необходимо прикрепить к роли exection, которую вы используете для своей лямбда-функции.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": "*"
        }
    ]
}

2) Lambda создает потоки журналов CloudWatch Logs в регионах, наиболее близких к местоположениям, в которых выполняется функция. Формат имени для каждого потока журнала: /aws/lambda/us-east-1.function-name, где имя-функции - это имя, которое вы дали функции при ее создании. Поэтому убедитесь, что вы проверяете журналы cloudwatch в правильном РЕГИОНЕ.

На случай, если кто-нибудь найдет это полезным. Тот факт, что AWS ставит префикс имени вашей функции, что нарушает встроенную панель мониторинга "CloudWatch с первого взгляда", и то, что Lambda@Edge работает в нескольких регионах, вдохновил меня на создание этого шаблона панели мониторинга CloudWatch, который дает вам аналогичный стандартный мониторинг для всех регионов в одна панель приборов.

Другие вопросы по тегам