Я новичок в ES, управляемом AWS. Раньше я работал на ES в качестве локального сервера. Я пытаюсь создать двухуровневое веб-приложение, используя SDK AWS JavaScript (без Node.js). Я создал управляемый узел ES, но не могу найти способ подключения для поиска и других запросов на добавление/обновление документов. AWS SDK в настоящее время предоставляет классы и методы, связанные с операциями, но не для поиска и других. может ли кто-нибудь помочь мне преодолеть этот пробел? Я не смог найти учебник или пример кода для подключения к поисковым операциям?
как выполнить поиск в управляемой AWS ES с помощью браузера javascript SDK?
Ответы (2)
К сожалению, SDK не предоставляет возможности чтения/записи. Это просто делается с помощью HTTP-запросов, но вы должны заблокировать свой кластер.
Это хорошая запись в блоге о том, как заблокировать кластер: https://aws.amazon.com/blogs/security/how-to-control-access-to-your-amazon-elasticsearch-service.-domain/
Так, например, вы можете настроить экземпляр EC2 и предоставить права для IP-адреса EC2 для доступа к вашему гибкому поисковому кластеру. Затем на странице Elasticsearch в AWS вы должны увидеть URL-адрес конечной точки, просто укажите туда свои запросы на чтение/запись, но заблокируйте его до будьте в безопасности.
# Example write to Elasticsearch
curl -XPUT "https://yourESUrl.com/movies/movie/1" -d'
{
"title": "The Godfather",
"director": "Francis Ford Coppola",
"year": 1972
}'
Если вам нужно освежить в памяти основы Elasticsearch, ознакомьтесь с этой статьей.
В Node вы можете использовать модуль Requests для выполнения этих команд, если хотите.
Elasticsearch.js соответствует https://github.com/elastic/elasticsearch-js.
Официальный низкоуровневый клиент Elasticsearch для Node.js и браузера.
Вы можете использовать его из своего браузера для подключения к классическому решению Elasticsearch.
AWS Elasticsearch требует, чтобы вы подписали свой запрос. В узле вы можете использовать https://github.com/TheDeveloper/http-aws-es< /а>. Он написан на ES6.
Это не идеальное решение, но вы можете попробовать посмотреть исходный код, чтобы увидеть, как закодированы коннекторы. https://github.com/TheDeveloper/http-aws-es/blob/master/connector-es6.js
Кстати, не опасно ли раскрывать свои учетные данные aws прямо в клиенте?