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

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;
    }
}
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;
    }
}