Cloudwatch 事件的 C# .NET Core AWS Lambda 函数处理程序签名

smk*_*081 3 c# amazon-web-services aws-lambda

我正在尝试用 C# (.NET Core) 编写一个 Lambda 函数,该函数将在我的帐户中发生 CloudWatch 事件时进行处理。我正在使用无服务器应用程序框架(https://www.serverless.com/),并且之前已成功编写处理程序代码来响应 ApiGateway 请求/事件。对于 ApiGateway 请求处理程序,方法签名始终具有相同的两个参数:

公共 APIGatewayProxyResponse SampleHandler(RequestAPIGatewayProxyRequest 请求,ILambdaContext 上下文)

根据文档(https://docs.aws.amazon.com/lambda/latest/dg/csharp-handler.html),第一个参数定义为“inputType”,通常特定于触发函数的事件第二个参数是通用 Lambda 函数上下文信息。目前,我未能成功找到 Cloudwatch 事件对应的对象类型。

我的无服务器应用程序框架 YAML 文件具有像这样连接的事件:

functions:
  NewRevision:
    handler:  CsharpHandlers::AwsDotnetCsharp.Handlers::NewDataExchangeSubscriptionRevision
    memorySize: 1024 # optional, in MB, default is 1024
    timeout: 20 # optional, in seconds, default is 6
    events:
      - cloudwatchEvent:
          event:
            source:
              - 'aws.dataexchange'
            detail-type:
              - 'Revision Published To Data Set'
Run Code Online (Sandbox Code Playgroud)

我的问题是,有谁知道 CloudWatch 事件的方法签名中应使用什么适当的对象类型?

小智 7

Amazon.Lambda.CloudWatchEvents您可以从NuGet 包中使用该CloudWatchEvent类型。诀窍是CloudWatchEvent根据事件源创建一个通用类。中定义了一些事件详细信息类型,Amazon.Lambda.CloudWatchEvents但根据您的事件类型,您可能必须创建一个自己的 POCO 以用于具有您关心的字段的通用参数。