Сервис поиска AWS Elastic - IAM Role (токен обновления сеанса - Node.js) - PullRequest
0 голосов
/ 25 июня 2018

Я использую сервис поиска AWS Elastic и написал оболочку Node.js (работает в докеризованном контейнере ECS). Роли IAM используются для создания одноэлементного соединения с помощью поиска Elastic.

Я пытаюсь обновить свой токен сеанса, проверяя AWS.config.credentials.needsRefresh () перед каждым запросом - однако он всегда возвращает истину даже после истечения сеанса. Очевидно, что AWS жалуется с ошибкой 403. Любые идеи будут с благодарностью.

var AWS = require('aws-sdk');
var config = require('config');
var connectionClass = require('http-aws-es');
var elasticsearch = require('elasticsearch');

AWS.config.getCredentials(function() {     

    AWS.config.update({
      credentials: new AWS.Credentials(AWS.config.credentials.accessKeyId,AWS.config.credentials.secretAccessKey,AWS.config.credentials.sessionToken),
      region: 'us-east-1'
    });
  }


)

    var client = new elasticsearch.Client({
      host: `${config.get('elasticSearch.host')}`,
      log: 'debug',
      connectionClass: connectionClass,
      amazonES: {
        credentials: new AWS.EnvironmentCredentials('AWS')
      }

    });


module.exports = client;
...