使用Lambda与java集成调用AWS API网关时出现“内部服务器错误”

问题描述 投票:-1回答:1

通过在线学习AWS。提出了类似的问题,但我做的是使用java8.0组合的Lambda。 (注意:lambda + python为我工作)。我在下面做了什么。

1.使用java 8.0和2.处理Lambda函数作为jar(感谢pom.xml)代码如下:3。在lambda屏幕中从设计器添加API网关 - 使其打开。 4.生成的API url粘贴在浏览器中然后我收到错误“{”message“:”内部服务器错误“}”5.在python(python用例正在工作)我返回如下然后它工作

但不适合java。如果有的话,请你提供链接。

Python代码:

def lambda_handler(event, context):
print("In lambda handler")

resp = {
    "statusCode": 200,
    "headers": {
        "Access-Control-Allow-Origin": "*",
    },
    "body": "My Name"
}

return resp

Java代码:package test1;

import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler;

公共类TestLambda实现RequestHandler {

    @Override
    public String handleRequest(Object input, Context context) {
        context.getLogger().log("Input: " + input);

        return "Hello from Lambda";
    }

}
java amazon-web-services aws-lambda aws-api-gateway
1个回答
0
投票

我终于找到了答案,请找到以下更新的课程,对我有用

@Override
    public ServerlessOutput handleRequest(ServerlessInput arg0, Context arg1) {
         Map<String, String> headers= new HashMap<String,String>();
         headers.put("Access-Control-Allow-Origin", "*");
        ServerlessOutput output= new ServerlessOutput();
         output.setStatusCode(200);
         output.setBody("Hello From First lambda with java");
         output.setHeaders(headers);
        return output;
    }

让我总结一下这些要点。

  1. 使用API​​网关设计器和Runtime作为java 8.0在AWS中创建lambda函数
  2. 设计API并获取将调用lambda函数的API URL。
  3. 如上所述创建一个类并生成jar并上传。
  4. 使用html / jsp中的API url从您的java文件中获取响应。

如果有人尝试这种组合,我可以提供帮助(aws + lambda + java 8.0 + API)

© www.soinside.com 2019 - 2024. All rights reserved.