Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将HTTP头从AWS API传递到Lambda函数_Java_Amazon Web Services_Http Headers_Aws Lambda_Aws Api Gateway - Fatal编程技术网

Java 将HTTP头从AWS API传递到Lambda函数

Java 将HTTP头从AWS API传递到Lambda函数,java,amazon-web-services,http-headers,aws-lambda,aws-api-gateway,Java,Amazon Web Services,Http Headers,Aws Lambda,Aws Api Gateway,我正在尝试使用java获取AWS Lambda函数中的HTTP头和正文详细信息,这些信息是使用AWS API通过POST方法发送的。到目前为止,我已经成功地建立了AWS API和AWS Lambda函数之间的连接,并且能够从API网关调用它。现在,为了将头传递给Lambda函数,我已经完成了从中“更新Lambda函数”之前的所有步骤。以下是我的lambda代码: import com.amazonaws.Request; import com.amazonaws.Response

我正在尝试使用java获取AWS Lambda函数中的HTTP头和正文详细信息,这些信息是使用AWS API通过POST方法发送的。到目前为止,我已经成功地建立了AWS API和AWS Lambda函数之间的连接,并且能够从API网关调用它。现在,为了将头传递给Lambda函数,我已经完成了从中“更新Lambda函数”之前的所有步骤。以下是我的lambda代码:

    import com.amazonaws.Request;
    import com.amazonaws.Response;
    import com.amazonaws.services.lambda.runtime.Context;
    import com.amazonaws.services.lambda.runtime.RequestHandler;
    import com.amazonaws.services.lambda.runtime.events.S3Event;

    public class SimpleSysout implements RequestHandler<Request, String> {
        public String handleRequest(Request request, Context context) {
            System.out.println("Method = "+request.getHttpMethod());
            System.out.println("Headers= "+request.getHeaders().toString());
            System.out.println("Content= "+request.getContent().toString());
            System.out.println("Servcie Name = "+request.getServiceName().toString());
            System.out.println("Resource Path = "+request.getResourcePath().toString());
            return request.toString();
        }

    }

我也尝试过使用不同的参数来代替请求,例如事件,但它们都不起作用。

负载映射模板有问题。在API网关设置过程中,您可以指定如何将请求映射到事件。还有两个预制模板可供选择

请看一看来自Amazon的此文档:


如果您需要更多帮助,请告诉我。

您的负载映射模板有问题。在API网关设置过程中,您可以指定如何将请求映射到事件。还有两个预制模板可供选择

请看一看来自Amazon的此文档:

如果需要更多帮助,请告诉我。

HandlerRequest(InputStream InputStream、OutputStream OutputStream、上下文) 我给您提供了一个链接,其中是从JSON获取头的正确实现

HandlerRequest(InputStream InputStream、OutputStream OutputStream、上下文) 我给您提供了一个链接,其中是从JSON获取头的正确实现


你能发布你的映射模板吗?你能发布你的映射模板吗。
    {
      "errorMessage": "An error occurred during JSON parsing",
      "errorType": "java.lang.RuntimeException",
      "stackTrace": [],
      "cause": {
        "errorMessage": "com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of com.amazonaws.Request, problem: abstract types either need to be mapped to concrete types, have custom deserializer, or be instantiated with additional type information\n at [Source: lambdainternal.util.NativeMemoryAsInputStream@4dfa3a9d; line: 1, column: 1]",
        "errorType": "java.io.UncheckedIOException",
        "stackTrace": [],
        "cause": {
          "errorMessage": "Can not construct instance of com.amazonaws.Request, problem: abstract types either need to be mapped to concrete types, have custom deserializer, or be instantiated with additional type information\n at [Source: lambdainternal.util.NativeMemoryAsInputStream@4dfa3a9d; line: 1, column: 1]",
          "errorType": "com.fasterxml.jackson.databind.JsonMappingException",
          "stackTrace": [
            "com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:148)",
            "com.fasterxml.jackson.databind.DeserializationContext.instantiationException(DeserializationContext.java:889)",
            "com.fasterxml.jackson.databind.deser.AbstractDeserializer.deserialize(AbstractDeserializer.java:139)",
            "com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:1511)",
            "com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1102)"
          ]
        }
      }
    }