Как вызвать лямбда-функции из отдельной папки?

#javascript #amazon-web-services #aws-lambda

#javascript #amazon-веб-сервисы #aws-lambda

Вопрос:

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

Чтобы дать вам представление: это основная функция, из которой я хотел бы вызвать функцию (например, «ShowMessage ()»):

введите описание изображения здесь

 var AWS = require('aws-sdk');
var dynamodb = new AWS.DynamoDB.DocumentClient({ region: 'eu-central-1', apiVersion: '2012-08-10' });

const functions = require("functions")

exports.handler = (event, context, callback) => {

    //invokes function in separate folder
    functions.showMessage();

}
  

Это файл, в котором я хотел бы сохранить функции.

введите описание изображения здесь

 // function in separate folder
function showMessage() {

    console.log("Message from function")

}
  

Следовательно, я хотел бы знать, как правильно это настроить и как правильно вызвать функцию из основного потока

Комментарии:

1. Не могли бы вы, пожалуйста, удалить эти #-#- # ? И, может быть, добавить код прямо здесь? Я не хочу увеличивать скриншоты.

2. Мне пришлось опубликовать скриншоты, потому что это скорее вопрос о структуре, чем о кодировании. Мне нужно было показать, где я хотел разместить / передать функции на аутсорсинг.

3. А вы читали документацию по модулю ? Если да, что именно у вас не сработало?

4. Нет, functions/functions.js: было бы достаточно показать нам структуру файлов

5. Дорогой Джонас, я также опубликовал код. Надеюсь, это поможет понять мою проблему

Ответ №1:

Вы можете сделать это, объявив функции как экспорт модуля.

 /* functions.js */
module.exports = {
  showMessage: function() {
    // code
  },

  anotherOne: function() {
    // code
  }
};
  
 /* index.js */
const functions = require('./functions/functions.js');
functions.showMessage();