Я использую безсерверный фреймворк для реализации безсерверного проекта. Я добавил некоторые настройки в свой файл serverless.yml, чтобы создать экземпляр для службы awsasticsearch, которая успешно создана. Затем я создал в своем обработчике клиентаasticsearch и пинговал его для тестирования. Поэтому, когда я пингую поисковый клиент elasti c с автономного сервера в моей локальной системе, он работал нормально и получил «истинный» ответ, но когда я развернул тот же код на aws лямбде, чем после истечения времени ожидания ответ до 30 сек. c.
Предоставлены все политики, которые могут потребоваться, но не удача.
Serverless.yml: -
ElasticSearchInstance:
Type: AWS::Elasticsearch::Domain
Properties:
EBSOptions:
EBSEnabled: true
VolumeType: gp2
VolumeSize: 10
ElasticsearchClusterConfig:
InstanceType: t2.small.elasticsearch
InstanceCount: 1
DedicatedMasterEnabled: false
ZoneAwarenessEnabled: false
ElasticsearchVersion: 7.1
Обработчик. js: -
var {Client} = require('elasticsearch');
var client = new Client({
host: 'Aws elasticsearch endpoint',
log: 'trace'
});
module.exports.elasticSearchPing = async () => {
try {
console.log('Inside elasticSearchPing function!!!!');
const res = await client.ping({requestTimeout: 900000});
console.log('Res: ', res);
return {
statusCode: 200,
body: JSON.stringify({ message: 'Connection successful with elasticSearch.' })
}
} catch (err) {
console.log('err: ', err);
return {
statusCode: err.statusCode || 500,
headers: { 'Content-Type': 'text/plain' },
body: 'Error connecting elasticsearch.'
}
}
}