我对Lambda和Node.JS都是陌生的。我最初想用Python编写函数,但老板说他希望在Node中使用它。我正在编写一个AWS Lambda函数,以在一天结束时关闭指定的EC2实例。我无法检查describeInstances是否在获取正确的数据。
现在,代码显示返回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.log(err, err.stack); // an error occurred
else return data; // successful response
});
//return Object.getOwnPropertyNames(instances);
//return instances.response.httpResponse;
return String(instances);
};
我只希望能够查看返回的EC2实例的列表,以查看我是否具有正确的实例,然后再将其关闭。
答案 0 :(得分:2)
describeInstances
返回一个AWS.Request
对象,而不是操作的实际结果,该结果在传递给describeInstances
函数的回调处理程序中返回。
您可以使用async/await
语法来做到这一点
const data = await ec2.describeInstances(params).promise();
return data
答案 1 :(得分:0)
您应该能够在AWS控制台中查看日志。最简单的方法是转到Lambda控制台,选择有问题的功能,单击左上方附近的“监视”,然后单击右下方的“查看CloudWatch中的日志”。