Angular 6 Connect с AWS ElasticSearch - PullRequest
       6

Angular 6 Connect с AWS ElasticSearch

0 голосов
/ 28 августа 2018

У меня кластер asticsearch , работающий на AWS . Мне нужно соединиться с кластеромasticsearch с Angular 6, каков наилучший способ добиться этого? У меня есть ключ доступа и секретный ключ, и у меня есть политика доступа вasticsearch, которая предоставляет этому пользователю полный доступ. Я использую этот код ниже в NodeJs .

var client = new elasticsearch.Client({
   host: process.env.ES_ENDPOINT,
   connectionClass: require('http-aws-es'),
   amazonES: {
       region: process.env.ES_REGION,
       credentials: new AWS.EnvironmentCredentials('AWS')
   },
   log: 'trace'
});

Я хочу сделать то же самое с Angular 6. Я подключился без аутентификации, как показано ниже: -

this.client = new Client({
  host: 'https://search-usercluster-xxxyuyy.ap-south-1.es.amazonaws.com/',
  log: 'trace'
});

1 Ответ

0 голосов
/ 11 ноября 2018

Лучший способ добиться этого - использовать Amazon Cognito . Например:

import AWS from 'aws-sdk';
AWS.config.region = 'us-east-2';
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
  IdentityPoolId: 'YOUR_IDENTITY_POOL_ID'
});
const options = {
  hosts: [
    'YOUR_HOST_URL'
  ], // array of amazon es hosts (required)
  connectionClass: require('http-aws-es'), // use this connector (required)
  amazonES: AWS.config, // set an aws config e.g. for multiple clients to different regions
  log: 'trace'
};

const es = require('elasticsearch').Client(options);

UPD: добавлен импорт AWS из «aws-sdk», нам нужно знать, как получить доступ к aws.config. Спасибо @AravinthanM!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...