Я создал ключ API и добавил его в свои функции. Затем я развернул api и протестировал его, но все равно получил:
"message": "Forbidden"
Как передать ключ api с моим запросом JSON, поскольку я использовал x-api-key: theKey?
Я создал ключ API и добавил его в свои функции. Затем я развернул api и протестировал его, но все равно получил:
"message": "Forbidden"
Как передать ключ api с моим запросом JSON, поскольку я использовал x-api-key: theKey?
Параметр x-api-key
передается как параметр заголовка HTTP (т.е. он не добавляется в тело JSON). Способ передачи заголовков HTTP зависит от используемого HTTP-клиента.
Например, если вы используете curl и предполагаете, что вы POST
полезные данные JSON, запрос будет выглядеть примерно так (где вы заменяете [api-id]
фактическим идентификатором и [region]
регионом AWS вашего API):
$ curl -X POST -H "x-api-key: theKey" -H "Content-Type: application/json" -d '{"key":"val"}' https://[api-id].execute-api.[region].amazonaws.com
Мне пришлось добавить план использования API, а затем связать план с этапом API.
Похоже, что это единственный способ связать ключ с API, не уверен, что это недавнее изменение в AWS.
{"message":"Forbidden"}
вообще не помогло. Спасибо, AWS !!
- person kev; 09.11.2017
Если вы установили для параметра «Требуется ключ API» значение true, пожалуйста, проверьте ниже.
вам необходимо передать параметр HTTP-заголовка x-api-key в API Gateway.
Ключ API должен быть создан.
Кроме того, вам необходимо проверить план использования ключа API на консоли API Gateway.
Если вы установили ключ API в значение true, вам необходимо передать ключ API в качестве заголовка.
Ключ API передается как поле заголовка x-api-key. Эта проблема может возникнуть даже после добавления этого поля в заголовок. В этом случае, пожалуйста, подтвердите следующие пункты
Мне удалось получить успешный ответ от Lambda, используя приведенную ниже конфигурацию в собственном приложении Postman -
На вкладке авторизации (по какой-то причине это не сработало, когда я передал те же параметры в заголовке)
Ключ: x-api-key
Значение: ваш-api-ключ-значение
Добавить в: Заголовок
Для частных шлюзов API, доступных через общедоступный DNS, нам необходимо передать дополнительный заголовок x-apigw-api-id с идентификатором api вместе с x-api-key, если он настроен.
curl -v https: // {vpce-id} .execute-api. {регион} .vpce.amazonaws.com / test -H 'x-apigw-api-id: {api-id}'
Это задокументировано ниже,