如何从Node JS访问AWS Elasticsearch

NoB*_*eal 3 amazon-web-services node.js elasticsearch amazon-iam

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

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

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

我已将AmazonESFullAccess策略应用于Lambda函数角色。
我想念什么?

NoB*_*eal 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')
    }
});
Run Code Online (Sandbox Code Playgroud)