Ошибка aws lambda произошла ошибка при загрузке потоков журналов

Когда я перехожу на страницу журналов, отображается ошибка ниже.

There was an error loading Log Streams. Please try again by refreshing this page.

Проблема в том, что есть другая функция, которая идентична, за исключением кода, который без проблем создает файлы журнала.

Какие-либо предложения?

5
0
5 091
4

Ответы 4

Я решил это.

Я добавил CloudwatchLogsFullAccess, и это заняло какое-то время меньше часа, а затем он заработал.

Я не уверен, почему мне нужно было сделать это для второй функции, но не для первой, но сейчас она работает.

Ниже ссылка, которая мне помогла.

https://blogs.perficient.com/2018/02/12/error-loading-log-streams/

(Комментировать это не обязательно для того, чтобы отговорить от использования политики CloudwatchLogsFullAccess, упомянутой в этом ответе, а для того, чтобы указать и на другие параметры политики) - Политика с таким же доступом, как CloudwatchLogsFullAccess, может не потребоваться: My Lambda использует только AWSLambdaBasicExecutionRole '[управляемая политика AWS] (которая имеет только уровень доступа «Запись») и может просматривать журналы только с этим.

cellepo 05.11.2018 22:34

Чтобы изменение Политики вступило в силу, мне пришлось внести небольшие изменения в лямбду и нажать «Сохранить». Как только я это сделал, обновление Политики начало действовать мгновенно.

isuru chathuranga 23.07.2019 11:41

Убедитесь, что ваша Lambda уже входила в систему хотя бы один раз!

Мне кажется, что эта ошибка возникает, если это не так - я протестировал свежие лямбда-выражения как с любыми операторами журнала, так и без них, чтобы подтвердить: без каких-либо операторов журнала соответствующая группа журналов для лямбда еще не существует; после того, как сделан первый оператор журнала, он существует в, казалось бы, недавно созданной соответствующей группе журналов.

Хотя это может показаться очевидным / интуитивно понятным постфактум, вот как я столкнулся с этим сценарием: я думаю, что до того, как произошло какое-либо ведение журнала на моем новом Lambda, я попытался подключить его к событиям CloudWatch - я попытался после этой попытки посмотрите, была ли вызвана лямбда (событиями) через просмотр Вкладка «Мониторинг» -> кнопка «Просмотр журналов в CloudWatch» - и именно здесь я столкнулся с этой ошибкой. Лямбда не была вызвана [подключение событий CloudWatch не удалось], поэтому регистрация не производилась, и, таким образом, не было создано соответствующей группы журналов для изучения (при попытке гиперссылки на нее из конфигурации лямбда).

(Fwiw, я предполагаю, что, возможно, соответствующая группа журналов может быть создана вручную перед первым журналированием, но я не тестировал это.)

Это отдельный ответ от моего другого ответа, потому что, хотя нужно применить ОБА, вы уже можете быть в положении, когда другой уже применен, и вам нужно только сейчас подать заявку, применив этот ответ.

cellepo 05.11.2018 05:10

Спасибо! Это была моя проблема

Michael Du 10.01.2019 19:40

Если вы используете AWS Lambda и нажимаете «Тест» для своего теста, вам сначала нужно будет назвать свой тест. Затем, когда вы нажимаете «ОК», он на самом деле не будет запускать тест за вас, он просто определил имя теста. Так что, если вы сразу же проверите журналы, вы ничего не увидите. Вы должны нажать «Проверить» время второй.

Corey Levinson 31.05.2019 19:01

Ваш ответ спас меня. Спасибо

Shafiqa Iqbal 25.07.2020 15:38

Убедитесь, что для роли выполнения вашей Lambda есть политика, которая разрешает запись в журналы CloudWatch из вашей Lambda.

Консоль IAM -> «Роли» -> <роль вашей лямбды> -> вкладка «Разрешения» -> аккордеон «Политики разрешений»

Убедитесь, что в списке есть Политика, параметры которой установлены следующим образом:

  • "Сервис": "Журналы CloudWatch"
  • "Уровень доступа": включает как минимум "Запись"
  • «Ресурс»: ваша лямбда не исключена (то есть: не установлена ​​другая конкретная лямбда, или другой каталог лямбда-выражений, или другой тип ресурса)
  • 'Условие запроса': не исключает контекст выполнения данной лямбды

Примером «политики, управляемой AWS», которая отвечает этим требованиям [из коробки, поскольку она управляется AWS], является «AWSLambdaBasicExecutionRole». У него такие параметры:

  • "Сервис": "Журналы CloudWatch"
  • "Уровень доступа": "Ограничено: запись"
  • "Ресурс": "Все ресурсы".
  • «Условие запроса»: «Нет»

Если ваша роль еще не имеет такой политики, либо добавьте новую, либо отредактируйте существующую, чтобы требования были перечислены здесь - тогда эта ошибка должна быть устранена.

Например, в моем случае до того, как я что-то исправил, моя роль лямбды имела политику, которая была на основании выключена [управляемая AWS] «AWSLambdaBasicExecutionRole», но каким-то образом имела ресурс, который был ограничен другой лямбдой (что было моей проблемой - недостаточное разрешение чтобы соответствовать этой политике из моей другой предполагаемой лямбды). Я исправил это, добавив политику оригинал [под управлением AWS] «AWSLambdaBasicExecutionRole» к моей предполагаемой роли Lambda (я также удалил ранее упомянутую политику, поскольку она не использовалась ничем другим, но это, вероятно, не было строго необходимым [хотя приятно привести в порядок]).

Это отдельный ответ от моего другого ответа, потому что, хотя нужно применить ОБА, вы уже можете быть в положении, когда другой уже применен, и вам нужно только сейчас подать заявку, применив этот ответ.

cellepo 05.11.2018 06:58

Я решил это, присоединив политику CloudWatchFullAccess к роли выполнения моей лямбда-функции enter image description here

Другие вопросы по теме