Назад | Перейти на главную страницу

как просмотреть журналы, созданные лямбда-функцией aws, с помощью aws cli

У меня есть лямбда-функция, написанная на голанге. Я запускаю его через вызов шлюза HTTP API. Он работает нормально, но я хотел бы видеть журналы, написанные на stderr, которые создаются моей программой golang.

Я попытался этот

aws logs describe-log-groups

но он показывает пустой массив:

{
    "logGroups": []
}

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

aws lambda invoke --function-name $FUNCTION_NAME $output --log-type Tail --query 'LogResult' 

в этом случае журнал печатается сразу после вызова.

Но было бы еще лучше увидеть логи лямбда-функции, когда я вызываю ее через HTTP API-шлюз.

Обновление 1

Я добавил группу журналов с именем /aws/lambda/$FUNCTION_NAME:

aws logs create-log-group --log-group-name /aws/lambda/$FUNCTION_NAME

И добавил к нему поток логов:

aws logs create-log-stream --log-group-name /aws/lambda/$FUNCTION_NAME --log-stream-name /aws/lambda/$FUNCTION_NAME

Затем я вызываю свою лямбда-функцию через API для создания журналов. Теперь проверяем логи:

 aws logs get-log-events --log-group-name /aws/lambda/$FUNCTION_NAME --log-stream-name /aws/lambda/$FUNCTION_NAME

И получите ответ:

{
    "nextForwardToken": "f/7872383232323",
    "events": [],
    "nextBackwardToken": "b/8080823092093"
}

Так что никаких событий у меня нет ... хммм ...

Я проверил эту группу журналов в консоли. Там тоже пусто.

Обновление 2

я добавил CloudWatchFullAccess policy к роли, прикрепленной к этой лямбда-функции:

aws iam attach-role-policy --role-name $roleName \
    --policy-arn arn:aws:iam::aws:policy/CloudWatchFullAccess

Вызвал API, перепроверил логи, пока пусто. Интересно, что когда я перечисляю политики ролей, он показывает пустой массив. Хотя, я просто установил CloudWatchFullAccess выше.

aws iam list-role-policies --role-name $roleName

{
    "PolicyNames": []
}

Когда вы создаете лямбда-функцию, с ней должна быть связана группа журналов, но похоже, что в вашей учетной записи ее нет. Вы можете попробовать создать новую группу журналов с именем '/aws/lambda/<function_name>' и посмотрите, решит ли это проблему. Я бы также попытался войти в веб-консоль, чтобы убедиться, что вы видите там ту же проблему. Вы также можете создать группу журналов через консоль в облачных часах.