【问题标题】:Go AWS Lambda: Where is event?Go AWS Lambda:事件在哪里?
【发布时间】:2020-12-10 05:35:56
【问题描述】:

大多数 Lambda 运行时都有以下处理程序签名,它允许访问传递给 Lambda 的事件和上下文对象:

lambdaHandler(event, context){}

但是,Go Lambda 处理程序的文档不遵循此约定,如下所示:https://docs.aws.amazon.com/lambda/latest/dg/golang-handler.html

问题:在使用 Go Lambda 运行时,即尝试确定 AWS CodeCommit Lambda 触发器 (https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-notify-lambda.html) 中的存储库 URL 时,如何访问事件对象?

【问题讨论】:

  • 事件对象是您链接到的文档中处理程序的第二个参数。你能澄清你的问题吗?
  • 文档显示事件是在上传的 Lambda 中定义的结构,仅包含一个“名称”属性,而不是包含从触发器传入的事件细节的典型事件对象。
  • 就是例子中的事件对象。您需要使用与您正在处理的任何类型事件的字段匹配的结构。
  • 阿德里安,请看下面的答案。

标签: amazon-web-services go aws-lambda aws-codecommit


【解决方案1】:

您的预期事件类型为events.CodeCommitEvent

func handler(ctx context.Context, codeEvent events.CodeCommitEvent) {
    for _, record := range codeEvent.Records {
        // do you magic here.
    }
}

【讨论】:

猜你喜欢
  • 2020-04-10
  • 2018-01-09
  • 2017-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-23
  • 2017-04-17
  • 1970-01-01
相关资源
最近更新 更多