const https = require('https');
const aws4 = require('aws4');
const accessKeyId = 'YOUR_ACCESS_KEY_ID';
const secretAccessKey = 'YOUR_SECRET_ACCESS_KEY';
const region = 'YOUR_AWS_REGION';
const serviceName = 'es';
const domain = 'YOUR_OPENSEARCH_DOMAIN';
const signedRequest = aws4.sign({
method: 'POST',
path: '/_opensearch/sql',
host: domain + '.' + region + '.es.amazonaws.com',
service: serviceName,
region: region,
headers: {
'Content-Type': 'application/json'
},
body: '{"query":"SELECT * FROM YOUR_INDEX LIMIT 10"}' // your SQL query
}, {
accessKeyId: accessKeyId,
secretAccessKey: secretAccessKey
});
https.request(signedRequest, (res) => {
let data = '';
res.on('data', (chunk) => {
data += chunk;
});
res.on('end', () => {
console.log(data);
});
}).end();
此代码使用AWS SDK的aws4库生成签名验证请求并检索结果。在应用程序中,可以使用身份验证的IAM用户的凭据直接查询Opensearch,并且可以避免在嵌入的链接中暴露凭据。