Amazon лямбда не показывает журналы Python - PullRequest
0 голосов
/ 13 июня 2018

Мой API (Python) развернут на Amazon Lambda.Проблема в том, что когда я запрашиваю свой API, я получаю внутреннюю ошибку сервера.Я могу привязать лямбда-логи, но не вижу фактической ошибки или трассировки стека, где произошел крах кода.Когда я хватаюсь за логи, я просто получаю следующий вывод.

START RequestId: 62341bgd-6231-11e8-8c5b-25793532a32u Version: $LATEST
END RequestId: 62341b0d-6231-1128-8r5b-2b793032a3ed
REPORT RequestId: 6234te0b-6rte-aaa8-au5a-21t93132r3rt  Duration: 0.46 ms

Как посмотреть фактическую трассировку стека моего Python API для отладки?

Ответы [ 3 ]

0 голосов
/ 14 июня 2018

Если вы используете роль Lambda_basic_execution, простая печать в python будет показывать журналы в облачном хранилище.

0 голосов
/ 15 июня 2018

Первоначальное расследование:

По умолчанию лямбда-функция создала группу журналов в CloudWatch под именем моего API.Например, / aws / lambda / my_api_name, в котором выводится что-то вроде этого.

START RequestId: 62341bgd-6231-11e8-8c5b-25793532a32u Version: $LATEST
END RequestId: 62341b0d-6231-1128-8r5b-2b793032a3ed
REPORT RequestId: 6234te0b-6rte-aaa8-au5a-21t93132r3rt  Duration: 0.46 ms

Решение проблемы:

Я создал сервисную роль для своего облачного наблюдения(Политика по умолчанию для всех прав для cloudWatch, уже предоставленных AWS), а затем вставьте эту роль в мой API.Я следовал этому подходу .Однако другим шагом может быть объединение вновь созданных журналов выполнения с заданным по умолчанию, поэтому у нас есть одна группа журналов для хвоста.

0 голосов
/ 13 июня 2018

Lambda всегда пытается записать трассировку стека Python в CloudWatch.Убедитесь, что ваша функция имеет необходимые разрешения:

    {
        "Effect": "Allow",
        "Action": [
            "logs:CreateLogStream",
            "logs:PutLogEvents"
        ],
        "Resource": "arn:aws:logs:eu-west-1:123456789012:*"
    },
    {
        "Effect": "Allow",
        "Action": "logs:CreateLogGroup",
        "Resource": "*"
    }
...