Как проверить данные Node.JS AWS Lambda?

Я новичок в 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, чтобы убедиться, что у меня есть правильные экземпляры, прежде чем отключать их.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
274
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Это ничего мне не показывает. CloudWatch просто выдает ошибку при загрузке.

Mike 04.06.2019 23:34

Вы видели этот проект? Я не пробовал, но выглядит довольно основательно.

Ben Hulan 04.06.2019 23:41
Ответ принят как подходящий

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

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

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

Аййй. Ты красивый человек. Спасибо!

Mike 04.06.2019 23:53

Другие вопросы по теме