使用 TypeScirpt 的 AWS SDK V3 的 Lambda 处理程序签名是什么

Dam*_*yer 5 aws-sdk-js

我正在将适用于 JavaScript 的 AWS 开发工具包的现有项目从 V2 更新到 V3,并将我们的使用方式从 JavaScript 转移到 TypeScript。

我正在努力为 Lambda 定义强类型处理程序。

我发现的例子与此类似。我猜他们使用的是 SDK V2。

export const lambdaHandler = async (event: APIGatewayEvent, context: Context): Promise<APIGatewayProxyResult> => {
    return {
        statusCode: 200,
        body: JSON.stringify({
            message: 'hello world',
        }),
    };
};
Run Code Online (Sandbox Code Playgroud)

我浏览了V3 源代码中类似的类APIGatewayEventContextAPIGatewayProxyResult我没有想到可以填补这些角色。

有人可以告诉我如何强输入这些签名吗?

小智 7

AWS 推出了@types/aws-lambda与 Javascript V3 SDK 一起使用的包。这是一个打字稿示例,适合您的具体用例。

import { APIGatewayProxyHandler, APIGatewayEvent, APIGatewayProxyResult } from "aws-lambda";

export const handler: APIGatewayProxyHandler = async (event: APIGatewayEvent): Promise<APIGatewayProxyResult> => {
    return {statusCode: 200, body: event.body ?? ''};
}
Run Code Online (Sandbox Code Playgroud)