Как подключиться к ElasticSearch на AWS через реактивный-прокси-сервер - PullRequest
0 голосов
/ 31 марта 2019

Я настраиваю свое первое приложение ElasticSearch, используя ReactiveSearch, для подключения к индексу ElasticSearch, который я создал в AWS.Я новичок в Node.js и большинство технологий, задействованных здесь.Я думаю, что у меня есть базовое приложение ReactiveSearch, которое работает, но оно не подключается к моему индексу AWS ElasticSearch.Когда я вхожу в поиск, я не получаю никаких выводов и ошибок.

Я следовал руководству по быстрому старту ReactiveSearch: https://opensource.appbase.io/reactive-manual/getting-started/reactivesearch.html

Я создал приложение Boilerplate с CRA: https://github.com/facebook/create-react-app#creating-an-app

Приложение работает нормально, но при попытке поиска ничего не выводится.Потом я увидел, что вы должны использовать прокси с AWS.Я клонировал https://github.com/appbaseio-apps/reactivesearch-proxy-server и все заработало, и теперь у меня есть прокси-сервер, работающий на http://localhost:7777/

Мое приложение поиска подключается к прокси-серверу следующим образом:

<ReactiveBase
  app="my-search"
  url="http://localhost:7777">

Thisэто код, который устанавливает цель в прокси.Я закомментировал авторизацию, потому что я не использую appbase.io.

const options = {
    target: 'https://search....ap-southeast-2.es.amazonaws.com',
    changeOrigin: true,
    onProxyReq: (proxyReq, req) => {
/*        proxyReq.setHeader( 
            'Authorization',
            `Basic ${btoa('cf7QByt5e:d2d60548-82a9-43cc-8b40-93cbbe75c34c')}`
        );*/
        /* transform the req body back from text */
        const { body } = req;
        if (body) {
            if (typeof body === 'object') {
                proxyReq.write(JSON.stringify(body));
            } else {
                proxyReq.write(body);
            }
        }
    }
}

Я вижу приложение ReactiveSearch в моем браузере по адресу http://localhost:3000

Когда я набираю ключевые слова в поискеВ прокси-приложении я вижу вывод, подобный этому:

Verifying requests ✔ {"preference":"results"}
{"query":{"bool":{"must":[{"bool":{"must":[{"bool":{"should":[{"multi_match":{"query":"cables","fields":["Description"],"type":"best_fields","operator":"or","fuzziness":0}},{"multi_match":{"query":"cables","fields":["Description"],"type":"phrase_prefix","operator":"or"}}],"minimum_should_match":"1"}}]}}]}},"size":50,"_source":{"includes":["*"],"excludes":[]},"from":0}

Verifying requests ✔ {"preference":"SearchBox"}
{"query":{"bool":{"must":[{"bool":{"must":{"bool":{"should":[{"multi_match":{"query":"horse","fields":["Description"],"type":"best_fields","operator":"or","fuzziness":0}},{"multi_match":{"query":"horse","fields":["Description"],"type":"phrase_prefix","operator":"or"}}],"minimum_should_match":"1"}}}}]}},"size":20}

Чего мне не хватает, чтобы установить соединение?Нужно ли добавлять какую-либо аутентификацию в AWS и добавлять пароли к прокси-коду?

Есть ли способ просмотреть некоторую отладочную информацию?

Спасибо, Фил

...