Я написал класс под названием Snag
, который позволяет вам определить путь для навигации по дереву объектов. Вот пример его использования:
Snag ENGINE_NAME = Snag.createForAndReturn(Car.class, String.class).toGet("engine.name").andReturnNullIfMissing();
Значение того, что экземпляр ENGINE_NAME
эффективно вызовет Car?.getEngine()?.getName()
в экземпляре, переданном ему, и вернет null
, если какая-либо ссылка вернулась null
:
final String name = ENGINE_NAME.get(firstCar);
Это не опубликовано на Maven, но если кто-нибудь найдет это полезным, то здесь (без каких-либо гарантий!) [/ g3]
Это немного базовый но, похоже, это делает работу. Очевидно, что он более устарел от более поздних версий Java и других языков JVM, которые поддерживают безопасную навигацию или Optional
.
Проблема заключалась в том, что моя группа журналов была в другом аккаунте.
Я смог осознать свою проблему, когда попытался перечислить все группы журналов, начиная с общего префикса, например, вместо «my-lambda» я использовал «my»:
aws logs describe-log-groups --log-group-name-prefix /aws/lambda/my
Как только я понял, что ни одной группы журналов не было в списке для префикса, который я ожидал, многие группы журналов и другие префиксы показывали некоторые группы журналов, я понял, что мне нужно использовать другую учетную запись. Я использовал профили CLI AWS для доступа к этой учетной записи с помощью этого использования:
aws logs describe-log-groups --profile prd --log-group-name-prefix /aws/lambda/my
, затем я увидел много ожидаемых групп журналов, подтверждающих их существование в правильной учетной записи.
Исправление для получения необходимых мне журналов должно быть таким:
aws logs get-log-events --profile prd --cli-input-json file://cli-get-log-events.json
К сожалению, я получаю следующую ошибку:
Произошла ошибка (ResourceNotFoundException) при вызове GetLogEvents операция: указанный поток журнала не существует.
blockquote>Существует упомянутое решение для этого сообщения об ошибке по адресу: Имя потока журнала AWS Cloudwatch не распознано
Но в моем случае, я думаю, что я просто скопировал неправильное имя потока журнала. Я снова взял имя потока из консоли и вставил его в мой входной файл cli.
Мое последнее использование было:
aws logs get-log-events --cli-input-json file://cli-get-log-events.json --profile prd > logs-xyz.json