Обычно, если это асинхронный вызов, вы хотите, чтобы он обрабатывался аналогично, без использования обратного вызова
// Load Modules
const AWS = require('aws-sdk')
//Set the region
AWS.config.update({ region: 'us-west-2' });
// Call AWS Resources
const ec2 = new AWS.EC2();
// Get Security Group ID From Event
const getSgIdFromEvent = async (event) => {
var ec2params = { Filters: [{ Name: 'tag:t_whitelist', Values[event['site']]}] };
try {
const securityGroupsDesc = await ec2.describeSecurityGroups(ec2params).promise();
const sgId = securityGroupsDesc.SecurityGroups[0].GroupId;
//do something with the returned result
return sgId;
}
catch (error) {
console.log('handle error');
// throw error;
}
});
};
// MAIN FUNCTION
exports.handler = (event, context) => {
getSgIdFromEvent(event)
.then(sgId => { console.log(sgId) });
}
, однако, если он не поддерживает асинхронный вызов, вы просто используете обратный вызов для обработки возвращаемых данных.или ошибка без использования асинхронной функции. Однако при чтении в документах AWS вы можете обнаружить, что функция ec2.describeSecurityGroups () возвращает запрос AWS , который имеет метод обещание () , который должен бытьВызван, чтобы отправить запрос и получить возвращенное обещание. Обратите внимание, что попытка перехвата здесь не нужна, но полезна в случае возникновения ошибки во время процесса.