Angular 6 与 AWS ElasticSearch 连接

标签 angular amazon-web-services elasticsearch

我有一个 Elasticsearch 集群在 上运行亚马逊 .我需要使用 Angular 6 连接 Elasticsearch 集群,实现这一目标的最佳方法是什么?我有一个访问 key 和 key ,并且我在 Elasticsearch 中有一个访问策略,允许该用户具有完全访问权限。我在 中使用以下代码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'
});

最佳答案

最好的方法是使用 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:添加了 import AWS from 'aws-sdk',我们需要知道如何获取 aws.config 访问权限。谢谢@AravinthanM!

关于Angular 6 与 AWS ElasticSearch 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52050176/

相关文章:

amazon-web-services - OptionSettings 的多个值

pandas - 如何将pandas数据导出到elasticsearch?

elasticsearch - 尽管知道电子邮件确实存在,但是电子邮件的ES curl无法返回正确的结果

java - 使用spark检索elasticsearch数据时出现错误

amazon-web-services - AWS CodeBuild 无法使用 CD 命令

javascript - .typescript + angular 2中的每个函数

javascript - RxJS - 当提供的表达式为真时完成观察

angular - 正确的方法来异步/等待错误

amazon-web-services - Docker ECS 插件 AWS 上下文未设置 docker ecs 设置

javascript - 将事件从子组件传递到父组件 Angular 5