2016-12-06 5 views
5

[решена] Новое для AWS (и StackOverflow). Я пытаюсь создать лямбда-сервис на AWS и получить доступ к нему извне через шлюз API без необходимости аутентификации или ограничения.получение сообщения: запрещенный ответ от шлюза API AWS

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

В методе Get API API для авторизации установлено значение None, а ключ API - not required.

Когда я пробую это, я получаю {"message":"Forbidden"} (это же сообщение, если я подключу его к фактической лямбда-службе).

Любые советы о том, как сделать его доступным? Спасибо

+2

Вы добавили метод get перед развертыванием? – Cenxui

+0

Интересно, у вас нет правильного URL-адреса для вызова. –

+0

Спасибо, ребята, я действительно ошибся в развертывании ... чувствую себя глупым. – Fab

ответ

13

Если вы установите для параметра «API Key Required» значение true, ознакомьтесь ниже.

  1. вы должны передать HTTP-заголовок «x-api-key» в API Gateway.
  2. Ключ API должен быть создан.
  3. Кроме того, вам необходимо проверить План использования ключа API на консоли API Gateway.
+0

Спасибо, Дэниэл, ваш третий шаг позволяет мне исправить мою ошибку. –

+0

Это сработало для меня, но это должно было быть «X-Api-Key». Похоже, вопросы капитализации – pixelwiz

+0

. В Postman действительно должно быть поле. – pixelwiz

11

На панели инструментов API-шлюза выберите «Ресурсы», выберите «Действия» и выберите «Развернуть API». Перед первым развертыванием единственным ответом вы получите {"message":"Forbidden"}.

+0

Я бы добавил к этому, после развертывания убедитесь, что вы добавили свое сценическое имя в URL-адрес: abcdefg.execute-api.us-east-2.amazonaws.com/STAGE_NAME/ – user2465134

3

Если Authorization и API KEY Required как значение истина для данного метода, то убедитесь, что у вас есть следующие заголовки при отправке запроса:

  1. Content-Type (обычно применение/х-WWW-форм-urlencoded если GET вызов)
  2. HOST
  3. X-Amz-Date
  4. Авторизация
  5. х-апи ключ

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

Примечание. Не добавляйте заголовок ключа x-api, если вы установили API KEY REQUIRED как FALSE. И если вы установили AUTHORIZATION как FALSE, то не добавляйте заголовок авторизации.

0

У меня была аналогичная проблема, и я имел следующее:

  1. персонализированного домена (Грань Оптимизированный)
  2. несколько этапов (DEV, постановка, лезвием)

Я также Бесполезный Не задавайте никаких полномочий или ограничений, чтобы сделать вещи простыми.

Я смог устранить проблему, добавив сопоставления базового пути для каждого из моих этапов (dev, staging, prod).

0

Если вы используете собственное доменное имя и забыли выбрать целевую станцию, вы получите сообщение Forbidden.

Просто перейдите по ссылке Custom Domain Names и нажмите Edit под своим доменом, а затем выберите этап под Base Path Mappings.

Смежные вопросы