Получение «Внутренняя ошибка сервера» при вызове шлюза AWS API с лямбда-интеграцией с Java - PullRequest
0 голосов
/ 14 сентября 2018

Обучение AWS через онлайн. Были заданы похожие вопросы, но я сделал лямбду с комбинацией java8.0. (Примечание: у меня работает лямбда + питон). То, что я сделал, ниже.

1.Создал лямбда-функцию с Java 8.0 и 2. Загруженный код в виде jar-кода (благодаря pom.xml) приведен ниже: 3. Добавлен API Gateway от дизайнера на лямбда-экране - Сделайте его открытым. 4.Сгенерированный URL-адрес API вставлен в браузер, после чего я получил сообщение об ошибке "{" 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-код: пакет 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";
    }

}

1 Ответ

0 голосов
/ 18 сентября 2018

Я наконец нашел ответ. Пожалуйста, найдите ниже обновленный класс, который работал для меня

@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. Создание лямбда-функции в AWS с APIконструктор шлюза и среда выполнения как java 8.0
  2. Разработка API и получение URL-адреса API, который вызовет вашу лямбда-функцию.
  3. создайте класс, как указано выше, сгенерируйте jar и загрузите.
  4. Используйте URL-адрес API в вашем html / jsp для получения ответа из вашего java-файла.

Я могу помочь, если кто-нибудь попробует эту комбинацию (aws + lambda + java 8.0 + API)

...