提问者:小点点

将编译的typescript部署到lambda时发生导入模块错误


我正在将我的一些JS代码转换为typescript,当使用无服务器框架在AWS上部署到一个lambda并运行它时,我得到以下错误。起初,我认为我的进口是不好的,但看起来一切都是预期的。

{“errortype”:“runtime.importmoduleerror”,“errormessage”:“error:找不到模块'tslib'\n需要堆栈:\n-/var/task/handlers/create.js\n->/var/runtime/userfunction.js\n-/var/runtime/index.js”,“trace”:[“runtime.importmoduleerror:error:找不到模块'tslib'”,“需要堆栈:”,“-/var/task/handlers/create.js”,“

无服务器:

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个答案

匿名用户

您需要将typescript编译为javascript,并在模板中引用transspiled输出。