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

How to inspect Node.JS AWS Lambda data?

我是 Lambda 和 Node.JS 的新手。本来想把函数写在Python,老板说喜欢用Node。我正在编写一个 AWS Lambda 函数以在一天结束时关闭指定的 EC2 实例。我无法检查 describeInstances 是否获取了正确的数据。

现在代码显示 return 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);
};

我只想查看 returned EC2 实例的列表,看看我是否有正确的实例,然后再关闭它们。

您应该能够在 AWS 控制台中查看日志。最简单的方法是转到 Lambda 控制台,select 有问题的函数,单击左上角附近的 "Monitoring",然后单击右下方的 "View logs in CloudWatch"。

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

您可以使用 async/await 语法

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