繁体   English   中英

Aws-Lambda 导出默认功能不起作用

[英]Aws-Lambda export default function does not work

我正在练习aws lambda函数和无服务器yml。 我正在使用 typescript 和 javascript es6。 我通过离线插件测试我的无服务器 yml 文件。 当我导出 lambda 函数并像这样在无服务器 yml 文件中调用它时: handler: src/handlers/hello.hello ,我的 lambda 触发了该函数并且它按预期工作。 我正在尝试将我的 lambda 函数作为导出默认函数并像这样调用它handler: src/handlers/hello.default 我收到错误消息: hello is not a function 我不知道我在默认导出中做错了什么。

这个逻辑有效

import { APIGatewayEvent } from "aws-lambda";

export async function hello(event: APIGatewayEvent) {

  console.log(event);

  try {
    return {
      statusCode: 200,
      body: JSON.stringify("hello emmy"),
    };
  } catch (error) {
    return {
      statusCode: 500,
      body: JSON.stringify(error),
    };
  }

}

此导出默认值不起作用

import { APIGatewayEvent } from "aws-lambda";

export default async function hello(event: APIGatewayEvent) {
  try {
    return {
      statusCode: 200,
      body: JSON.stringify("hello world"),
    };
  } catch (error) {
    return {
      statusCode: 500,
      body: JSON.stringify(error),
    };
  }
}

我认为其中很大一部分可能归结为您的无服务器配置。 我通过以下方式将serverless-bundle用作插件:

plugins:
  - serverless-bundle

为了能够在我使用无服务器框架创建的 Lambda 中利用 ES6 和其他现代 javascript 好东西。

我这样创建和导出我的函数:

export default async function (event)

然后在我的 serverless.yml 中设置处理程序,如下所示:

handler: handler.default

这让我的一切正常运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM