AWS ElasticSearch с Lambda и S3 не добавляет документы в индекс

У меня загадочная проблема: у меня есть лямбда-функция, которая переносит данные из корзины S3 в кластер AWS ES. Моя лямбда-функция работает правильно и сообщает следующее:

All 6 log records added to ES

Однако добавленные документы не отображаются в индексе AWS ElasticSearch. / _cat / индексы? v

health status index uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   logs  3N2O9CqhSwCP6sj1QK5EQw   5   1          0            0      1.2kb          1.2kb

Я использую эту лямбда-функцию https://github.com/aws-samples/amazon-elasticsearch-lambda-samples/blob/master/src/s3_lambda_es.js Роль лямбда-функции имеет полные права доступа к кластеру ES и корзине S3. Он может получить доступ к ведру S3, потому что я могу распечатать содержимое журнала консоли Lambda.

Приветствуются любые идеи для дальнейшей отладки!

Ваше здоровье

Вы уверены, что правильно настроили esDomain? т.е. вы уверены, что проверяете тот же кластер (в том же регионе), в который отправляете документы?

Val 23.10.2018 06:58

Также было бы неплохо увидеть, что содержится в ответе body после завершения запроса. Там может быть какая-то полезная информация. Также зачем возиться с переопределением клиента ES, когда вы могли просто require официальный Клиент JS и использовать его?

Val 23.10.2018 08:10

Вот так. Один интересный вывод из тела ответа: type":"illegal_argument_exception","reason":"unknown setting [index.remote_addr] please check that any required plugins are installed, or check the breaking changes documentation for removed settings"}] Я подозреваю, что лямбда-функция была написана для более старой версии. Также тип запроса неверен, потому что для ES 6.3 он должен быть PUT вместо POST. Спасибо!

thepolina 23.10.2018 09:29

Я бы определенно использовал официальный клиент JS, как я сказал выше.

Val 23.10.2018 09:49

Спасибо за помощь! по-видимому, мое отображение и структура json из библиотеки clf-parser (в примере github) не совпадали

thepolina 25.10.2018 07:38
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
452
1

Ответы 1

Для этого может быть много причин. Поскольку вы спрашиваете об идеях для отладки, вот несколько из них:

  1. Добавьте console.info в метод лямбда postDocumentToES, который показывает, где именно он подключается

  2. Попробуйте извлечь код из лямбды и запустить его локально, чтобы убедиться, что он успешно отправляется в эластичный поиск (чтобы код был по крайней мере правильным)

  3. Убедитесь, что нет «особых ограничений» на индекс (например, ttl на пару минут или что-то в этом роде) или, может быть, чего-то, что не позволяет вставлять в индекс.

  4. Сколько у вас серверов ES? Возможно, существует их кластер, и репликация настроена неправильно, поэтому, когда вы проверяете состояние индекса в одном ES, на самом деле у него нет документов, но другой сервер ES может иметь эти документы.

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