【问题标题】:How to access AWS Elasticsearch from Node JS如何从 Node JS 访问 AWS Elasticsearch
【发布时间】:2018-06-24 17:31:16
【问题描述】:

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

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

用户:anonymous 无权执行:es:ESHttpPost on resource:****

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 这个解决方案对我有用,但我必须在 AWS 对象上设置默认区域。 AWS.config.region = "us-east-1";github.com/TheDeveloper/http-aws-es/issues/44
    • 我在User: anonymous is not authorized to perform: es:ESHttpPost 之前遇到了同样的错误。但是在添加这个之后,我得到了No Living connections。可能出了什么问题?
    猜你喜欢
    • 2019-04-20
    • 1970-01-01
    • 2017-11-04
    • 2020-08-01
    • 2019-10-10
    • 2020-04-13
    • 2014-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多