如何检查Node.JS AWS Lambda数据?

时间:2019-06-04 21:28:19

标签: javascript node.js amazon-web-services aws-lambda aws-sdk

我对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实例的列表,以查看我是否具有正确的实例,然后再将其关闭。

2 个答案:

答案 0 :(得分:2)

describeInstances返回一个AWS.Request对象,而不是操作的实际结果,该结果在传递给describeInstances函数的回调处理程序中返回。

您可以使用async/await语法来做到这一点

const data = await ec2.describeInstances(params).promise();
return data

答案 1 :(得分:0)

您应该能够在AWS控制台中查看日志。最简单的方法是转到Lambda控制台,选择有问题的功能,单击左上方附近的“监视”,然后单击右下方的“查看CloudWatch中的日志”。