node.js - 如何从 Node JS 访问 AWS Elasticsearch

标签 node.js amazon-web-services elasticsearch amazon-iam

我有我的 nodejs lambda 试图将数据索引到 ES,但由于这个错误而失败了:

2018-01-15T23:39:09.578Z (node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 131): Authorization Exception ::

User: anonymous is not authorized to perform: es:ESHttpPost on resource: ****

我已将 AmazonESFullAccess 策略应用于 Lambda 函数角色。
我错过了什么?

最佳答案

我能够解决这个问题。代码缺少“connectionClass”和“amazonES”参数。

var AWS = require('aws-sdk');
var connectionClass = require('http-aws-es');
var elasticsearch = require('elasticsearch');
var elasticClient = new elasticsearch.Client({  
    host: ***,
    log: 'error',
    connectionClass: connectionClass,
    amazonES: {
      credentials: new AWS.EnvironmentCredentials('AWS')
    }
});

关于node.js - 如何从 Node JS 访问 AWS Elasticsearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48273935/

相关文章:

node.js - 如何在没有 Lambda 插件的情况下使用 Node.js 在自己的服务器上使用 alexa-sdk 运行 Alexa 技能?

amazon-web-services - 在 docker 容器中运行 CDK 时无法解析要使用的 AWS 账户

python - AWS Cognito 作为网站的 Django 身份验证后端

amazon-web-services - 将 war 从S3部署到AWS Elastic Beanstalk

spring-boot - 需要为ElasticsearchRepository findBy查询编写自定义分析器

javascript - 护照验证卡住并且不返回任何值

javascript - 在 NodeJS 中迭代多行对象数组

node.js - 上传文件到云存储时如何设置元数据属性

c# - ElasticSearch创建索引

elasticsearch - 使用 “/”和 “-”不区分大小写的搜索