Ошибка модуля импорта при развертывании скомпилированной машинописи в лямбду - PullRequest
2 голосов
/ 20 января 2020

Я конвертирую часть своего JS кода в машинописный текст, и при развертывании с использованием безсерверной инфраструктуры в lambda на AWS и запускаю его, я получаю сообщение об ошибке ниже. Сначала я думал, что один из моих импортных товаров был плохим, но, похоже, все соответствует ожиданиям.

{"errorType": "Runtime.ImportModuleError", "errorMessage": "Ошибка: не удается найти модуль 'tslib' \ nRequire stack: \ n- /var/task/handlers/Create.js \ n-> /var/runtime/UserFunction.js\n- /var/runtime/index.js "," trace ": [" Runtime.ImportModuleError: Ошибка: не удается найти модуль 'tslib' "," Требуется стек : "," - /var/task/handlers/Create.js "," - /var/runtime/UserFunction.js "," - /var/runtime/index.js "," в _loadUserApp (/var/runtime/UserFunction.js:100:13) "," в Object.module.exports.load (/var/runtime/UserFunction.js:140:17) "," в Object. ( /var/runtime/index.js:43:30) "," в Module._compile (внутренний / modules / cjs / loader. js: 956: 30) "," в Object.Module._extensions .. js (внутренний / modules / cjs / загрузчик. js: 973: 10) "," в Module.load (внутренний / modules / cjs / загрузчик. js: 812: 32) "," в функции. Module._load (внутренний / modules / cjs / loader. js: 724: 14) "," в Function.Module.runMain (внутренний / modules / cjs / loader. js: 1025: 10) "," в внутренний / главный / пробег _main_module. js: 17: 11 "]}

Без сервера:

functions:
  createFamily:
    name: ${self:custom.createFamilyName}
    handler: handlers/Create.createFamily
    description: Lambda for Creating a family in the family service
    timeout: 30
    events:
      - http:
          path: /family
          method: post
          private: true

Обработчик:

import { APIGatewayEvent, Context, ProxyResult } from 'aws-lambda';
import { utilities } from '../handlers/utilities';
import { familyService } from '../services/FamilyService';
import { IFamily } from '../interfaces/IFamily';

let familyData: IFamily;
let serverReturn: IFamily;

export const createFamily = async (
    event: APIGatewayEvent,
    context: Context
): Promise<ProxyResult> => {
    try {
        if (!event.body) {
            return utilities.BuildResponse(400, JSON.stringify('Object to create was not provided'));
        }
        familyData = JSON.parse(event.body);
        serverReturn = await familyService.createFamily(familyData);

        if (!serverReturn) {
            return utilities.BuildResponse(404, JSON.stringify('Failed to create Family'));
        }

        return utilities.BuildResponse(201, JSON.stringify(serverReturn));
    } catch(err) {
        console.error('Family Service Create a family error: ', err);
        return utilities.BuildResponse(500, JSON.stringify('Family Service internal server error'));
    }
}

1 Ответ

1 голос
/ 21 января 2020

Вам нужно скомпилировать вашу машинопись до javascript и ссылаться на переданный вывод в шаблоне.

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