Aws Lambda:如何在Java实现的Lambda函数中从Api网关获取查询参数
Aws Lambda-如何在Java实现的Lambda函数中从Api网关获取查询参数 我有以下代码片段:Aws Lambda:如何在Java实现的Lambda函数中从Api网关获取查询参数,java,aws-lambda,aws-api-gateway,Java,Aws Lambda,Aws Api Gateway,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
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;
}
}
package com.amazonaws.lambda.demo;
导入com.amazonaws.services.lambda.runtime.Context;
导入com.amazonaws.services.lambda.runtime.RequestHandler;
公共类lambdFunctionHandler实现RequestHandler{
@凌驾
公共字符串handleRequest(字符串输入,上下文){
context.getLogger().log(“输入:”+Input);
//TODO:实现您的处理程序
返回“Hello from”+输入;
}
}
如何访问上述HandlerRequest函数中的查询参数(如果有)。您可以尝试在API网关的集成请求主体映射模板中映射所需的所有内容。一旦您构建了body映射模板,那么在lambda的上下文中,您将获得您构建的excat json 请找到下面的链接,我为类似问题提供了解决方案
在pom.xml中确保此处指定了“2.2.5”或更新版本
亚马逊网站
aws lambda java事件
2.2.5
您的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;
}
}
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent;
导入com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent;
公共类lambdFunctionHandler
实现RequestHandler{
@凌驾
公共APIGatewayProxyResponseEvent HandlerRequest(APIGatewayProxyRequestEvent输入,
上下文(上下文){
Map inputParams=input.getPathParameters();
APIGatewayProxyResponseEvent responseEvent=新的APIGatewayProxyResponseEvent();
responseEvent.setBody(“正文”);
响应事件设置状态代码(200);
返回响应事件;
}
}
根据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;
}
}
public类LambdaFunctionHandler
实现RequestHandler{
@凌驾
公共APIGatewayProxyResponseEvent HandlerRequest(APIGatewayProxyRequestEvent输入,上下文){
Map inputParams=input.getQueryStringParameters();
对于(Map.Entry:inputParams.entrySet()){
LOGGER.info(“参数:”+entry.getKey()+“=”+entry.getValue());
}
APIGatewayProxyResponseEvent responseEvent=新的APIGatewayProxyResponseEvent();
responseEvent.setBody(“正文”);
响应事件设置状态代码(200);
返回响应事件;
}
}
谢谢Vijayanath,我会试试这个,然后回来。这对我不起作用。我还需要配置其他东西吗?
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;
}
}