Возможно ли напечатать ошибки? - PullRequest
0 голосов
/ 19 мая 2018

Например, такой код:

os.Stderr.WriteString(rec.(string))

Но это не будет отображаться как ошибка: aws lambda monitoring

Я знаю, что могу запаниковать после входа в систему ипоймать его на API-шлюзе (против отправки стека к клиенту) - других способов нет? Документация ничего подобного не упоминает.

1 Ответ

0 голосов
/ 19 мая 2018

Кажется невозможным.Я предполагаю, что вы просматриваете показатели в Amazon CloudWatch

. AWS Lambda автоматически отслеживает функции от вашего имени, сообщая о показателях через Amazon CloudWatch.Эти показатели включают общее количество вызовов, ошибки , длительность, дроссели, ошибки DLQ и возраст итераторов для потоковых вызовов.https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions-metrics.html

Теперь давайте посмотрим, как они определяют ошибки

Метрика «Ошибки» измеряет количество вызовов, которые не были выполнены из-за ошибок в функции (код ответа)4XX).

Итак, если вы хотите увидеть ошибки на этом графике, вы должны ответить соответствующими кодами.Если вы обеспокоены раскрытием трассировки стека ошибок, прочитайте Обработка ошибок с помощью функций API Gateway и Go Lambda .Основная идея заключается в создании пользовательского типа lambdaError, предназначенного для использования функцией-обработчиком Lambda для переноса ошибок перед их возвратом.Это пользовательское сообщение об ошибке

{
  "code": "TASK_NOT_FOUND",
  "public_message": "Task not found",
  "private_message": "unknown task: foo-bar"
}

будет помещено в стандартное

{
  "errorMessage": "{\"code\":\"TASK_NOT_FOUND\",\"public_message\":\"Task not found\",\"private_message\":\"unknown task: foo-bar\"}",
  "errorType": "lambdaError"
}

и позже сопоставлено в API Gateway, поэтому конечный клиент увидит только общедоступное сообщение

{
  "code": "TASK_NOT_FOUND",
  "message": "Task not found"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...