节点 AWS SDK v3:Lambda 函数中“事件”和“上下文”参数的类型?
Node AWS SDK v3: Types for `event` and `context` arguments in Lambda functions?
我正在切换到新的 Node AWS SDK (v3) 以利用其模块化和 Typescript 支持。我需要做的第一件事是编写一个 Lambda 函数,但我找不到支持处理程序函数签名的类型。 @aws/client-lambda
中的类型似乎都与 managing Lambda 的客户端有关。
Node SDK 是否有用于编写 Lambda 的官方类型?特别是:
context
参数的类型在哪里?
- 对于
event
参数,是否有可能来自其他 AWS 服务及其相应类型的事件列表?
interface Event {
// This could be anything -- a custom structure or something
// created by another AWS service, so it makes sense that
// there isn't a discoverable type for this. There should be
// corresponding types for each service that can send events
// to Lambda functions though. Where are these?
}
interface Context {
// This is provided by Lambda, but I can't find types for it anywhere.
// Since it's always the same, there should be a type defined somewhere,
// but where?
}
exports.handler = ( event: Event, context: Context )=>{
// While `event` could anything so it makes sense to not have a single type available,
// `context` is always the same thing and should have a type somewhere.
}
使用aws-lambda types,它有大多数事件的类型。
示例处理程序:
import { SQSHandler, SNSHandler, APIGatewayProxyHandler } from 'aws-lambda';
export const sqsHandler: SQSHandler = async (event, context) => {
}
export const snsHandler: SNSHandler = async (event, context) => {
}
export const apiV2Handler: APIGatewayProxyHandler = async (event, context) => {
return {
body: 'Response body',
statusCode: 200
}
}
我正在切换到新的 Node AWS SDK (v3) 以利用其模块化和 Typescript 支持。我需要做的第一件事是编写一个 Lambda 函数,但我找不到支持处理程序函数签名的类型。 @aws/client-lambda
中的类型似乎都与 managing Lambda 的客户端有关。
Node SDK 是否有用于编写 Lambda 的官方类型?特别是:
context
参数的类型在哪里?- 对于
event
参数,是否有可能来自其他 AWS 服务及其相应类型的事件列表?
interface Event {
// This could be anything -- a custom structure or something
// created by another AWS service, so it makes sense that
// there isn't a discoverable type for this. There should be
// corresponding types for each service that can send events
// to Lambda functions though. Where are these?
}
interface Context {
// This is provided by Lambda, but I can't find types for it anywhere.
// Since it's always the same, there should be a type defined somewhere,
// but where?
}
exports.handler = ( event: Event, context: Context )=>{
// While `event` could anything so it makes sense to not have a single type available,
// `context` is always the same thing and should have a type somewhere.
}
使用aws-lambda types,它有大多数事件的类型。
示例处理程序:
import { SQSHandler, SNSHandler, APIGatewayProxyHandler } from 'aws-lambda';
export const sqsHandler: SQSHandler = async (event, context) => {
}
export const snsHandler: SNSHandler = async (event, context) => {
}
export const apiV2Handler: APIGatewayProxyHandler = async (event, context) => {
return {
body: 'Response body',
statusCode: 200
}
}