Я настроил собственный лямбда-авторизатор типа REQUEST. Я добавил 4 новых пользовательских заголовка запроса в качестве источника удостоверений в API -> Авторизаторы -> Источники удостоверений и 1 Авторизация по умолчанию. Итак, всего их 5.
Когда я вызываю API, для которого настроен указанный выше авторизатор, авторизатор вызывается дважды. Первый раз со значениями всех параметров в объекте события второй раз с пустым объектом события.
Поскольку объект события имеет значение null, мой код выбрасывает нулевой указатель, хотя впервые утвержденные заявки были успешно подтверждены и возвращены политики Разрешить.
Сначала я пытался использовать авторизатор типа токена, но одного токена мне было недостаточно для проверки. Тип токена работает просто отлично. То есть 2-й запрос не сделан.
Когда я перешел к типу ЗАПРОС, я начал видеть эту проблему.
Ниже приведены журналы из облачных часов
2019-03-28 05:53:33 b78955e6-c072-4ada-945f-c8d34490d2ad DEBUG APIGatewayLambdaAuthorizer:92 - Sucess: Request authorized
2019-03-28 05:53:33 b78955e6-c072-4ada-945f-c8d34490d2ad TRACE APIGatewayLambdaAuthorizer:103 - Exit: Policy generated: {policyDocument={Version=2012-10-17, Statement=[{Action=execute-api:Invoke, Resource=arn:aws:execute-api:us-east-2:851424344156:67w9c9wojb/stage/GET/, Effect=Allow}]}, principalId=yC98Q4Edda9QqwYVkkhe75sUR8SS25pK@clients}
2019-03-28 05:53:33 090465d8-2c04-4869-83fb-cdcde53d33b7 TRACE APIGatewayLambdaAuthorizer:82 - Enter event:
{}
, context: lambdainternal.api.LambdaContext@4c5474f5
java.lang.NullPointerException: java.lang.NullPointerException
java.lang.NullPointerException