Я новичок в Lambda и Node.JS. Изначально я хотел написать функцию на Python, но босс сказал, что хотел бы ее на Node. Я пишу функцию AWS Lambda для отключения указанных экземпляров EC2 в конце дня. У меня возникли проблемы с проверкой того, получает ли descriptionInstances правильные данные.
Прямо сейчас код показывает возврат String(instances);, но я пробовал множество разных вещей, таких как return instances.response.data;, который выдает ошибку о попытке преобразовать данные в строку или что-то в этом роде.
var AWS = require('aws-sdk');
var ec2 = new AWS.EC2();
AWS.config.update({region: 'us-west-2'});
exports.handler = async (event) => {
var params = {
Filters: [
{
Name: "tag:Parking",
Values: [
"true"
]
}
]
};
var instances = ec2.describeInstances(params, function(err, data) {
if (err) console.info(err, err.stack); // an error occurred
else return data; // successful response
});
//return Object.getOwnPropertyNames(instances);
//return instances.response.httpResponse;
return String(instances);
};
Я просто хочу иметь возможность просмотреть список возвращенных экземпляров EC2, чтобы убедиться, что у меня есть правильные экземпляры, прежде чем отключать их.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы должны иметь возможность просматривать журналы в консоли AWS. Самый простой способ — перейти в консоль Lambda, выбрать нужную функцию, нажать «Мониторинг» в левом верхнем углу, а затем «Просмотреть журналы в CloudWatch» чуть ниже справа.
Вы видели этот проект? Я не пробовал, но выглядит довольно основательно.
describeInstances возвращает объект AWS.Request, а не фактические результаты операции, которые возвращаются в обработчике обратного вызова, который вы передали функции describeInstances.
Вы можете сделать это так, используя синтаксис async/await
const data = await ec2.describeInstances(params).promise();
return data
Аййй. Ты красивый человек. Спасибо!
Это ничего мне не показывает. CloudWatch просто выдает ошибку при загрузке.