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

How do I get the parameters from a webook notification into my AWS Lambda function?

我对如何通过 API 网关连接我的 Lambda 函数到 Braintree 的 Webhooks 感到有点困惑。我知道 webhooks 通过 api 网关和端点 URL 调用我的 lambda 函数,但我不确定如何设置我的 lambda 函数来正确处理它并使用 webhooks 在调用时将作为参数传递的值功能。我现在有以下内容:

package com.amazonaws.lambda.submerchantapproved;

import java.util.HashMap;

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;

import com.amazonaws.services.lambda.runtime.events.DynamodbEvent;
import com.braintreegateway.BraintreeGateway;
import com.braintreegateway.Environment;
import com.braintreegateway.WebhookNotification;
import com.braintreegateway.WebhookNotification.Kind;

public class SubmerchantApproved implements RequestHandler<Object, String> {


    public String handleRequest(Object request, Context context) {

        BraintreeGateway gateway = new BraintreeGateway(
              Environment.SANDBOX,
              "MyValue",
              "MyValue",
              "MyValue"
        );

        WebhookNotification webhookNotification = gateway.webhookNotification().parse(
                request.queryParams("bt_signature"),
                request.queryParams("bt_payload")
       );


        String woofer = "";



        return woofer;
    }

}

虽然这不起作用或不正确。我究竟要如何将这些 bt_signature 和 by_payload 值放入我的 lambda 函数中? Webhooks 通过相关的 http-POST 请求传递数据。

好吧,您的 Object request 正是那些请求参数应该在的位置。

Java Lambda 有两种主要场景:

  1. 您可以将 API 网关配置为代理模式并在您的 Java 代码中解析输入流。 AWS 人员非常友好地为您编写了这个随时可用的示例:http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-create-api-as-simple-proxy-for-lambda.html#api-gateway-proxy-integration-lambda-function-java
  2. 您可以使用传统的 API 网关映射,但随后您必须实施一个请求 class,该请求将实施 bt_signatureby_payload 等参数。同样,AWS 提供了一个很棒的 template/example:http://docs.aws.amazon.com/lambda/latest/dg/java-handler-io-type-pojo.html