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