Как просмотреть журналы, созданные лямбда-функцией 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
Политика к роли, связанной с этой лямбда-функцией:
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": []
}
1 ответ
Когда вы создаете лямбда-функцию, с ней должна быть связана группа журналов, но, похоже, в вашей учетной записи их нет. Вы можете попробовать создать новую группу журналов с именем '/aws/lambda/<function_name>'
и посмотрите, решит ли это проблему. Я также попытался бы войти в веб-консоль, чтобы убедиться, что вы видите там ту же проблему. Вы также можете создать группу журналов через консоль в облаке.