![](/img/trans.png)
[英]How To Convert Java Lambda from AWS API Gateway to Load Balancer
[英]Aws Lambda: How to get query params from Api Gateway in lambda function implemented in Java
Aws Lambda - 如何在 Java 中實現的 lambda 函數中從 Api 網關獲取查詢參數。
我有以下代碼片段:
package com.amazonaws.lambda.demo;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
public class LambdaFunctionHandler implements RequestHandler<String, String> {
@Override
public String handleRequest(String input, Context context) {
context.getLogger().log("Input: " + input);
// TODO: implement your handler
return "Hello from " + input;
}
}
如果上述 handleRequest 函數中有任何查詢參數,我如何訪問查詢參數。
在pom.xml 中確保在此處指定“ 2.2.5 ”或更新版本
<dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-lambda-java-events</artifactId> <version>2.2.5</version> </dependency>
你的 java lambda 類:
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent;
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent;
public class LambdaFunctionHandler
implements RequestHandler<APIGatewayProxyRequestEvent, APIGatewayProxyResponseEvent> {
@Override
public APIGatewayProxyResponseEvent handleRequest(APIGatewayProxyRequestEvent input,
Context context) {
Map<String, String> inputParams = input.getPathParameters();
APIGatewayProxyResponseEvent responseEvent = new APIGatewayProxyResponseEvent();
responseEvent.setBody("body text");
responseEvent.setStatusCode(200);
return responseEvent;
}
}
您可以嘗試在 API Gateway 的集成請求正文映射模板中映射您想要的所有內容。 一旦您構建了主體映射模板,那么在 lambda 的上下文中您將獲得您構建的 excat json。
請找到以下鏈接,我已經為類似問題提供了解決方案,
根據上面 tgk23 的回答,我相信您正在尋找查詢參數,而不是路徑參數:
public class LambdaFunctionHandler
implements RequestHandler<APIGatewayProxyRequestEvent, APIGatewayProxyResponseEvent> {
@Override
public APIGatewayProxyResponseEvent handleRequest(APIGatewayProxyRequestEvent input, Context context) {
Map<String, String> inputParams = input.getQueryStringParameters();
for (Map.Entry<String, String> entry : inputParams.entrySet()) {
LOGGER.info("param: " + entry.getKey() + "=" + entry.getValue());
}
APIGatewayProxyResponseEvent responseEvent = new APIGatewayProxyResponseEvent();
responseEvent.setBody("body text");
responseEvent.setStatusCode(200);
return responseEvent;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.