Обновление 1

Обновление 1

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

Связанный контент