如何从Node JS访问AWS Elasticsearch

时间:2018-01-16 04:06:16

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

我的nodejs lambda尝试将数据索引到ES中,但由于此错误而失败:

  

2018-01-15T23:39:09.578Z(节点:1)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝ID:131):授权例外::

     

用户:匿名无权执行:es:资源上的ESHttpPost:****

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

1 个答案:

答案 0 :(得分:5)

我能够解决这个问题。代码缺失' 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')
    }
});