Как проверить данные Node.JS AWS Lambda? - PullRequest
0 голосов
/ 05 июня 2019

Я новичок как в Lambda, так и в Node.JS. Изначально я хотел написать функцию на Python, но босс сказал, что ему понравится в Node. Я пишу лямбда-функцию AWS для отключения определенных экземпляров EC2 в конце дня. У меня возникли проблемы с проверкой правильности данных, описываемых методом instanceInstances.

В данный момент код показывает 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);
};

Я просто хочу иметь возможность просмотреть список возвращенных экземпляров EC2, чтобы увидеть, есть ли у меня правильные экземпляры, прежде чем их отключать.

Ответы [ 2 ]

2 голосов
/ 05 июня 2019

describeInstances возвращает объект AWS.Request, а не фактические результаты операции, которые возвращаются в обработчик обратного вызова, который вы передали функции describeInstances.

Вы можете сделать это, используя async/await синтаксис

const data = await ec2.describeInstances(params).promise();
return data
0 голосов
/ 05 июня 2019

Вы сможете просматривать журналы в консоли AWS.Самый простой способ - перейти на консоль Lambda, выбрать нужную функцию, нажать «Мониторинг» в левом верхнем углу, а затем «Просмотреть журналы в CloudWatch» чуть ниже того справа.

...