amazon-web-services - AWS 弹性搜索服务 - IAM 角色(刷新会话令牌 - Node.js)
问题描述
我正在使用 AWS Elastic 搜索服务并编写了一个 Node.js 包装器(在 ECS dockerized 容器中运行)。IAM 角色用于创建与 Elastic 搜索的单例连接。
我试图通过在每个请求之前检查 AWS.config.credentials.needsRefresh() 来刷新我的会话令牌 - 但是即使在会话过期后它也总是返回 true。显然 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;
解决方案
推荐阅读
- python - 导入文件时出错:ModuleNotFoundError: No module named
- java - 如何通过反射获取和初始化字段?
- c++ - 执行 while 循环未按预期执行
- protractor - 如何在 Protractor 的 onPrepare 中同时使用函数和规范文件?
- typescript - Typescript 在不使用泛型类型的情况下推断泛型类型
- google-colaboratory - 安装谷歌驱动器时出现谷歌colab错误
- python - 即使使用说明,熊猫中的 SettingWithCopyWarning
- postgresql - liquibase 无法在分区表上创建索引和唯一约束
- reactjs - 传递空数组时如何将useState与Typescript一起使用
- vba - Application.ActiveExplorer.Selection 错误:数组索引超出范围