как выполнить поиск в управляемой AWS ES с помощью браузера javascript SDK?

Я новичок в ES, управляемом AWS. Раньше я работал на ES в качестве локального сервера. Я пытаюсь создать двухуровневое веб-приложение, используя SDK AWS JavaScript (без Node.js). Я создал управляемый узел ES, но не могу найти способ подключения для поиска и других запросов на добавление/обновление документов. AWS SDK в настоящее время предоставляет классы и методы, связанные с операциями, но не для поиска и других. может ли кто-нибудь помочь мне преодолеть этот пробел? Я не смог найти учебник или пример кода для подключения к поисковым операциям?


person Shahnaz Khan    schedule 28.01.2017    source источник


Ответы (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 для выполнения этих команд, если хотите.

person cameck    schedule 29.01.2017
comment
Спасибо за это, но я действительно видел все это и хорошо знаком с elasticsearch. Именно, я ищу поисковые вызовы javascript на основе браузера (не node js) для ES, управляемого AWS. прямо сейчас пытаюсь изучить aws-js-sdk для создания http-вызовов и их подписи. - person Shahnaz Khan; 30.01.2017
comment
А, теперь я понимаю лучше :). Это определенно правильный путь - person cameck; 30.01.2017

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 прямо в клиенте?

person Artholl    schedule 30.01.2017
comment
да, я нашел этот соединитель и попытался создать HTTPRequest, но, к сожалению, попал в другой тупик, см. этот вопрос. Я вхожу в систему через AWS cognito и использую ключ доступа (не учетные данные). - person Shahnaz Khan; 31.01.2017