当前位置: 首页 > 知识库问答 >
问题:

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

庞安晏
2023-03-14

我正在将我的一些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个答案

林鹭洋
2023-03-14

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

 类似资料:
  • 我正在创建一个AWS Lambda python部署包。我使用一个外部依赖请求。我安装了外部依赖使用AWS留档http://docs.aws.amazon.com/lambda/latest/dg/lambda-python-how-to-create-deployment-package.html.下面是我的python代码。 创建了压缩项目目录的内容并上传到lambda(压缩目录内容,而不是目

  • 问题内容: 所以代码很简单: Calls.json file.ts 生成的javascript是正确的,并且在运行节点js服务器时,控制台日志json.SERVER会按需打印’{请求:{一个:‘1’}}’。 但是,打字稿编译器(commonjs)并不特别喜欢这种情况,并抛出:“找不到模块’../static/calls.json’”。 当然,我尝试编写.d.ts文件,如下所示: 这显然会引发:“环

  • 当我在本地运行应用程序时,我使用GETlocalhost:8080/resources/sqlData/projects访问Rest资源没有问题,但是出于某种原因,当我在AWS服务器上尝试时,我使用my-app.elasticbeanstalk.com/resources/sqlData/projects. Amazon Web服务是否需要某种版本的Resteasy或其他东西?这是我的日志: 17

  • Im试图使用SQOOP将一个小表从mysql导出到HDFS,该表有两列id(主键)和名称。我可以通过SQOOP列出数据库和表。但在将表导入到HDFS时出现异常。好心的帮助。下面是错误日志。

  • 本文向大家介绍TypeScript 从npm导入模块,包括了TypeScript 从npm导入模块的使用技巧和注意事项,需要的朋友参考一下 示例 如果模块具有类型定义文件(d.ts),则可以使用import语句。 如果您没有模块的定义文件,TypeScript将在编译时抛出错误,因为它找不到您要导入的模块。 在这种情况下,可以使用正常的运行时require功能导入模块。但是,这将其返回为any类型

  • 使用命令安装模块后,我可以通过在node.js命令行中导入模块,但当我执行以运行代码时,遇到MODULE_NOT_FOUND错误