AWS API Gateway не открывается

Я создал лямбда-функцию hello world, а затем развернул ее в конечной точке с помощью AWS API Gateway:

настройки конфигурации

Все очень основные настройки, но я был уверен, что изменил безопасность на «открытую», и хотя мне сказали, что для разрешения домена может потребоваться 15 минут, я обнаружил, что даже через 30 минут я получал следующий ответ от « открытая "конечная точка:

 {"message":"Missing Authentication Token"}

Я упускаю что-то очевидное? Разве это не должно было быть доступно с тем, что я сделал?


Обратите внимание: было указано, что это изображение представляет собой PUT, а не GET. Я попробовал оба, и оба вернулись с ошибками. Просто чтобы проверить, я запустил GET и PUT через Postman и получил аналогичный, но не идентичный ответ:

PUT

а затем ПОЛУЧИТЬ ...

ПОЛУЧИТЬ

Когда я тестирую лямбда-функцию в консоли, она работает успешно, но запускает ее в API-шлюзе, это дает мне другую формулировку той же ошибки:

Вт, 29 сентября, 20:57:43 UTC 2015: Выполнение не удалось из-за ошибки конфигурации: недопустимые разрешения для лямбда-функции

и все же я использовал разрешения по умолчанию, которые предлагала консоль. Сама лямбда-функция очень проста, и ее можно найти здесь: code


person ken    schedule 29.09.2015    source источник
comment
Это общий ответ на то, что вы сделали что-то не так. Покажите, как вы отправляете свой запрос в API.   -  person Dark Falcon    schedule 29.09.2015
comment
Они дают URL-ссылку в консоли AWS (это просто GET без параметров); Я просто нажал на нее. Какую дополнительную информацию я должен включить?   -  person ken    schedule 29.09.2015
comment
Ну вот тут и твоя проблема. Когда вы щелкаете URL-адрес, вы выполняете GET, но на вашем снимке экрана показан метод PUT. Метод PUT не отвечает на запросы GET.   -  person Dark Falcon    schedule 29.09.2015
comment
На самом деле, видите, что изображение, которое я опубликовал, было PUT, но это была попытка второй ... Тот же результат с GET   -  person ken    schedule 29.09.2015
comment
Я обновил вопрос, включив в него ответы GET и PUT (которые совпадают).   -  person ken    schedule 29.09.2015
comment
Ошибка отсутствия токена аутентификации выдается при вызове недопустимого URL-адреса. Судя по предоставленной вами информации, я предполагаю, что правильный URL-адрес - something.execute-api.eu-west-1.amazonaws.com/prod/HelloColdWorld2   -  person Mike76    schedule 01.10.2015


Ответы (4)


У меня была такая же проблема с развернутым API, который часто попадал около полудня, запросы перестали работать и выходили из строя с {Missing Authentication Token}

Моя проблема заключалась не в URL-адресе или этапе, который не был развернут, но я знаю, что AWS выдает эту ошибку по обеим этим причинам.

Однако я нашел команду для аннулирования кеша apigateway, потому что в моем случае я использовал собственный домен, подключенный к cloudfront.

aws apigateway flush-stage-cache --rest-api-id 97y41psdkg --stage-name dev

После запуска я перестал получать {Missing Authentication Token}

person David Webster    schedule 19.03.2018

Сегодня у меня была именно такая проблема. Все, что я сделал, не сработало, но, наконец, понял. Оказывается, чтобы изменения вступили в силу, нужно Развернуть API.

Поэтому сначала перейдите в Ресурсы и нажмите кнопку Развернуть API. Он запросит этап развертывания. После развертывания я мог без проблем вызывать свой API.

Я знаю, что прошло много времени с тех пор, как вы разместили этот вопрос, но подумал, что он может пригодиться и другим людям.

person Volkan Paksoy    schedule 18.02.2016
comment
Спасибо @volkan, похоже, ваша ситуация немного отличалась от моей, но, к сожалению, я оставил этот вопрос и забыл обновить свой ответ (который, конечно, я сейчас забыл). Я думаю, что мой вопрос сводился к тому, что прокси-сервер через тему SNS ARN был правильным, так что ваш ответ может быть более применимым. :) - person ken; 18.02.2016
comment
Вот где я оказался ... stackoverflow.com/questions/34213464/ - person ken; 18.02.2016

Вам необходимо использовать «Подпись AWS» на вкладке «Авторизация» в Postman. См. Это руководство AWS о том, что вводить в эти поля:

http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-use-postman-to-call-api.html.

person Kevin    schedule 08.10.2016

Используйте имя ресурса в конце URL-адреса API.

https: //***********.execute-api.us-east-1.amazonaws.com/Stag/number

Здесь номер - название моего ресурса

person Rajasekaran Radhakrishnan    schedule 31.01.2017