2017-05-01 36 views
1

我有點困惑,因爲我的意圖是通過API網關將我的Lambda函數連接到Braintree的Webhooks。我知道webhooks通過api gateway和端點URL調用我的lambda函數,但我不確定如何設置我的lambda函數來正確處理這個問題,並使用webhooks在調用函數時將作爲參數傳遞的值。我有權利現在以下幾點:如何從webook通知中獲取參數到我的AWS Lambda函數中?

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請求傳遞數據。

+0

你是什麼意思「* bt_signature和by_payload值到我的lambda函數中?*」 – hagrawal

回答

0

那麼,你的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 enter image description here
  2. 您可以使用傳統的API網關映射,但那麼你就必須實施將實現像bt_signature這些參數的請求類和by_payload。再次,一個偉大的模板/示例可從AWS獲得:http://docs.aws.amazon.com/lambda/latest/dg/java-handler-io-type-pojo.html
相關問題