как получить доступ к журналу облачных часов вызова лямбда-функции после вызова лямбда-функции из java-клиента

Я пытаюсь получить журналы, специфичные для лямбда-функции, после вызова лямбда-функции. Существует ли подходящий метод aws java sdk для получения журналов выполнения лямбда-выражения после вызова функции?


person user7768018    schedule 26.03.2017    source источник


Ответы (1)


Документация AWS Lambda — Logging (Java) содержит три рекомендации:

  • Найдите журналы в журналах CloudWatch. Объект контекста (в библиотеке aws-lambda-java-core) предоставляет методы getLogStreamName() и getLogGroupName(). Используя эти методы, вы можете найти конкретный поток журналов, в который записываются журналы.

Этот случай больше всего соответствует вашему вопросу. Получите группу журналов CloudWatch и поток журналов из объекта контекста , а затем передать их в пакет SDK AWSLogsClient getLogEvents() для получения журналов.

  • Если вы вызываете функцию Lambda через консоль, тип вызова всегда будет RequestResponse (то есть синхронное выполнение), а консоль отображает журналы, которые функция Lambda записывает с использованием объекта LambdaLogger. AWS Lambda также возвращает журналы из методов System.out и System.err.

Этот случай полезен для ручного тестирования/отладки из консоли.

  • Если вы вызываете функцию Lambda программно, вы можете добавить параметр LogType, чтобы получить последние 4 КБ данных журнала, которые записываются в журналы CloudWatch. Дополнительные сведения см. в разделе Вызов. AWS Lambda возвращает эту информацию журнала в заголовке x-amz-log-results в ответе. Если вы используете интерфейс командной строки AWS для вызова функции, вы можете указать параметр --log-type со значением Tail.

Этот случай может быть особенно полезен для вас в среде разработки и более доступен, поскольку вам просто нужно setLogType в Java SDK InvokeRequest. Затем в ответе просто проверьте getLogResult.

В зависимости от вашего использования, тщательно подумайте, прежде чем использовать этот случай в производстве. Например, не приведет ли это к утечке ваших журналов вашему клиенту? Даже если это не так, достаточно ли вашего объема, чтобы сделать это непрактичным?

person Anthony Neace    schedule 26.03.2017