amazon-web-services - AWS Lambda SNS 触发事件类型?

标签 amazon-web-services typescript aws-lambda amazon-sns serverless

我从事无服务器开发已经有一段时间了,主要是 AWS,并且刚刚开始涉足 SNS 发布/订阅设计模式。我正在使用 typescript 并且类型支持很棒,但是我找不到从 SNS 或 S3 触发器进入 Lambda 的事件的正确类型。这些将使函数之间的接缝确实非常安全。目前我正在定义自己的接口(interface),但这会让人厌烦。例如

interface IAWSSNSTriggerPayload {
  Records: [
    {
      EventSource: string,
      EventVersion: string,
      EventSubscriptionArn: string,
      Sns: {
        Type: string,
        MessageId: string,
        TopicArn: string,
        Subject: string,
        Message: string,
        Timestamp: string,
        SignatureVersion: string,
        Signature: string,
        SigningCertUrl: string,
        UnsubscribeUrl: string,
        MessageAttributes: {},
      }
    }
  ]
}

export const handler = (event: IAWSSNSTriggerPayload, context, cb) => {
  const response = {
    statusCode: 200,
    body: JSON.stringify({
      message: 'Go Serverless Webpack (Typescript) v1.0! Your function executed successfully! And from the SNS',
      input: event,
    }),
  };
  console.log('SNS Received from Lambda Publisher!!!')
  console.log(JSON.stringify(event.Records))
  cb(null, response);
}


如果有人能指出我正确的方向,我将不胜感激。

干杯。

最佳答案

您可以使用 SNSEvent来自 @types/aws-lambda .
https://github.com/DefinitelyTyped/DefinitelyTyped/blob/56c1ea26b59ed0e4634b1ba27096ab3b90371875/types/aws-lambda/index.d.ts#L211
请记住,这些类型不是由 AWS 自己维护的,因此在某些情况下它可能不是最新的。

关于amazon-web-services - AWS Lambda SNS 触发事件类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47643871/

相关文章:

express - 将图像从 lambda 上传到 s3(损坏的文件)

amazon-web-services - 如何在 AWS API Gateway 中不返回任何内容?

amazon-web-services - 工作完成后,有没有办法运行aws胶履带式履带车?

javascript - 在 Typescript 中将数据添加到请求

java - 无法播放使用预签名 URL 上传到 AWS S3 的 mp4 视频

TypeScript:如何在带有剩余参数的函数中返回条件类型?

json - TypeScript如何将对象数组格式化为json数组

java - 如何将网络书通知中的参数获取到我的 AWS Lambda 函数中?

amazon-web-services - 如何将 Superset 与 AWS athena 连接起来?

amazon-web-services - "A statement of the security measures and mechanisms you will be implementing"AWS(解锁端口 25)