У меня проблема с авторизатором cognito, и у меня закончились варианты тестирования (которые я могу придумать), поэтому мне интересно, сталкивался ли кто-нибудь с подобными проблемами. Я искал форумы, и предыдущие случаи, похоже, были связаны с инцидентом AWS и «решились сами собой». Моя проблема длится уже больше недели.
У меня есть 3 пула пользователей Cognito, созданных с использованием Terraform (извините, Cloud Formation) и подключенных к разным REST API в качестве авторизаторов Cognito в шлюзе API. У меня есть еще 3, почти идентичных (за исключением имен), прикрепленных к еще 3 API.
Если я возьму действительный JWT, полученный с помощью AWS Amplify (или с помощью API Cognito напрямую), и либо протестирую авторизатор с помощью консоли, либо протестирую авторизатор с помощью CLI, либо сделаю запрос API к конечной точке с включенной аутентификацией, я получу следующее:
{
"clientStatus": 500,
"log": "Execution failed due to an internal error",
"latency": 28
}
Я включил ведение журнала API Gateway, и это дает мало информации:
00:17:50 (63aac040-e610-11e8-a304-1dab6e773ddd) Extended Request Id: QOP7MG0ELPEFUBg=
00:17:50 (63aac040-e610-11e8-a304-1dab6e773ddd) Starting authorizer: x1rebc for request: 63aac040-e610-11e8-a304-1dab6e773ddd
00:17:50 (63aac040-e610-11e8-a304-1dab6e773ddd) Execution failed due to an internal error
00:17:50 (63aac040-e610-11e8-a304-1dab6e773ddd) Gateway response type: DEFAULT_5XX with status code: 500
00:17:50 (63aac040-e610-11e8-a304-1dab6e773ddd) Gateway response body: {"message":null}
00:17:50 (63aac040-e610-11e8-a304-1dab6e773ddd) Gateway response headers: {Access-Control-Allow-Origin=*, Access-Control-Allow-Headers=Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token, Access-Control-Allow-Methods=GET,OPTIONS}
Если я скопирую сценарий Terraform и разверну другой пользовательский пул и авторизатор, а затем прикреплю его к сломанной конечной точке API, тогда все будет в порядке. Если я прикреплю один из трех других авторизаторов, которые уже развернуты, к сломанной конечной точке API, тогда все в порядке.
Если я прикрепляю авторизатор из сломанной конечной точки к другой конечной точке API, которая работает и имеет включенную аутентификацию (в другом API, который работает с работающим авторизатором), то эта конечная точка API ломается... так что это говорит мне, что это это проблема Cognito, о которой я не могу получить никаких журналов!
Если бы это был практически любой другой ресурс AWS, я бы его выбросил, переустановил и начал заново. Однако понимание первопричины этого очень важно для меня, поскольку объединение производственного пула пользователей и всех пользователей и их данных, которые нельзя экспортировать или перенести (насколько я знаю), И перенастройка веб-приложения для использование нового приложения Cognito и идентификаторов пула пользователей, которые не могут быть статически сопоставлены (насколько я знаю), не является чем-то, чем я хочу рисковать в производственной среде.
Любая дополнительная информация или указатели будут очень признательны! Спасибо,
Том