Убедитесь, что у вас есть контент в таблице Dynamo DB. Без этого потоковая передача не произойдет, и поскольку Elasticsearch создаст индекс (таблицу), в первый раз что-то будет введено в него, это приведет к отсутствию индекса.
Если в вашем Динамо-БД есть контент, проблема, скорее всего, связана с проблемами с интеграцией между DB Dynamo и AWS Lambda или между AWS Lambda и Elasticsearch.
Вот несколько вещей, которые вы можете сделать для отладки:
- Проверьте журналы CloudWatch/Мониторинг для вашего лямбда, чтобы увидеть, если он был вызван
- Был вызов успешным? Если не решить эту ошибку и повторить попытку
- Имеет ли роль выполнения лямбда соответствующие разрешения для публикации вещей в elasticsearch? (Особенно проверьте, чтобы ARN, указанный вами для ролей, указывал на правильные ресурсы в вашей учетной записи aws)
- Имеет ли роль выполнения lambda соответствующие разрешения для чтения вещей из вашего потока Dynamo DB? (Проверьте ARN и здесь)
- Validate, что ES_ENDPOINT вы указали указует на кластер, созданные ранее в учебнике
Надеется, что это поможет вам решить проблему!
Все перечисленные выше были успешно проверены. Cloudwatch показывает завершение вызова, я устанавливаю разрешения так же, как описано в учебнике, а затем я ввел ARN моей таблицы. ES_ENDPOINT указывает на мой кластер. Моя проблема остается прежней. Я не могу поймать данные в Amazon ES Services, тогда как мой облачный показ показывает успешный вызов. –
Вы пытались открыть лямбду в консоли и вручную изменить код, чтобы добавить больше протоколирования и отладки таким образом? Также, когда у меня была аналогичная проблема. Оказалось, что регион в ARN устанавливается на _us-east-1_, когда он должен был _eu-west-1_ для кластера elasticsearch. – baggero