【问题标题】:Node AWS SDK v3: Types for `event` and `context` arguments in Lambda functions?节点 AWS SDK v3:Lambda 函数中的“事件”和“上下文”参数的类型?
【发布时间】:2021-07-04 08:52:56
【问题描述】:

我正在切换到新的 Node AWS SDK (v3) 以利用其模块化和 Typescript 支持。我需要做的第一件事是编写一个 Lambda 函数,但我找不到支持处理函数签名的类型。 @aws/client-lambda 中的类型似乎都与管理 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.
}

【问题讨论】:

    标签: node.js typescript aws-lambda aws-sdk-js aws-sdk-js-v3


    【解决方案1】:

    使用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
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2019-05-24
      • 2021-12-09
      • 1970-01-01
      • 2022-01-17
      • 2019-07-19
      • 2015-10-27
      • 1970-01-01
      • 2021-12-22
      • 1970-01-01
      相关资源
      最近更新 更多