Вызов файла из AWS lambda handler.js? - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть файл node.js (т. Е. abc.js), который выдаст вывод при запуске в редакторе node.js.Я хочу запустить тот же файл в AWS Lambda. Для этого я создал лямбду и переместил туда abc.js.Для запуска кажется, что мне нужно реализовать мой abc.js файл в handler.js (то есть, лямбда-путь означает обратный вызов и т. Д.).

Есть ли способ вызвать abc.js из handler.js вместо повторной реализациито же самое в handler.js?

Проверено в отношении вышеупомянутого варианта использования, но не нашел много в Google.

Обновлено

Мой abc.js файл

var AWS = require('aws-sdk');
// Set the region 
AWS.config.update({
    region: "ap-south-1"
   });

// Create S3 service object
s3 = new AWS.S3();
var params= {};
 s3.listBuckets(params, bucketList);
function bucketList(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else   
  {   
        console.log(data)
  }
}

Мой handler.js в лямбде и его изменение на основе моей интерпретации вашего ответа.

exports.handler = async (event) => {
    const abc = require('./abc.js');
    // TODO implement
abc.bucketList();     
};

Это ошибка, которую я получаю

Response:
{
  "errorMessage": "abc.bucketList is not a function",
  "errorType": "TypeError",
  "stackTrace": [
    "exports.handler (/var/task/index.js:5:5)"
  ]
}

Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

У вас есть проблемы с файлом abc.js.

Попробуйте этот фрагмент:

const abc = async function() 
{
    try
    {
        const AWS = require('aws-sdk');
        let s3 = new AWS.S3({region: "ap-south-1", apiVersion: '2006-03-01' });
        let params= {};
        const s3Response = await s3.listBuckets(params).promise();

        console.log(s3Response); // your list of buckets 

    }
    catch (ex)
    {
        console.error(ex);
    }
}

export default abc;
0 голосов
/ 13 сентября 2018

Требуется ваш файл

const abc = require('./abc.js');

А в функции обработчика вызовите ваш код

abc.yourExportedMethod();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...