angular - Angular 6 与 AWS ElasticSearch 连接
问题描述
我有一个在AWS上运行的elasticsearch集群。我需要使用 Angular 6 连接弹性搜索集群,实现这一目标的最佳方法是什么?我有一个访问密钥和密钥,并且我在弹性搜索中有一个访问策略,允许该用户具有完全访问权限。我在NodeJs中使用下面的代码。
var client = new elasticsearch.Client({
host: process.env.ES_ENDPOINT,
connectionClass: require('http-aws-es'),
amazonES: {
region: process.env.ES_REGION,
credentials: new AWS.EnvironmentCredentials('AWS')
},
log: 'trace'
});
我想对 Angular 6 做同样的事情。我在没有身份验证的情况下进行了连接,如下代码所示:-
this.client = new Client({
host: 'https://search-usercluster-xxxyuyy.ap-south-1.es.amazonaws.com/',
log: 'trace'
});
解决方案
实现这一目标的最佳方法是使用Amazon Cognito。例如:
import AWS from 'aws-sdk';
AWS.config.region = 'us-east-2';
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: 'YOUR_IDENTITY_POOL_ID'
});
const options = {
hosts: [
'YOUR_HOST_URL'
], // array of amazon es hosts (required)
connectionClass: require('http-aws-es'), // use this connector (required)
amazonES: AWS.config, // set an aws config e.g. for multiple clients to different regions
log: 'trace'
};
const es = require('elasticsearch').Client(options);
UPD:添加了 import AWS from 'aws-sdk',我们需要知道如何获取 aws.config 访问权限。谢谢@AravinthanM!
推荐阅读
- oracle - oracle数据库中如何修改http端口号?
- python - How to create a good image of "pillars of creation" by "make_lupton_rgb of astropy" in astropy,python?
- android - 将 Firestore 中的图像加载到 RecyclerView 中:图像未显示
- python - python pandas添加2个具有特定列的数据框
- android - 如何从电缆二维码生成 qr_secret?
- python - Assigning column names while creating dataframe results in nan values
- excel - 如果单元格包含某些单词,则删除行(语法错误)
- netsuite - Netsuite - 如何从 POST 方法的 Suitelet 下拉字段中获取“文本”
- javascript - 使用 await 保存在函数调用之外的数据
- kotlin - 我如何在枚举中使用函数引用?