Я создал ключ 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-клиента.
Например, если вы используете завиток и при условии, что вы 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.
Если вы установите для параметра "API-ключ обязательно" значение "Истина", проверьте ниже.
вам необходимо передать "HTTP-заголовок" x-api-key в API Gateway.
Ключ API должен был быть создан.
Кроме того, вам нужно проверить План использования для ключа API на консоли API Gateway.
Если для ключа 'API' требуется значение true, вам необходимо передать ключ API в качестве заголовка.
Ключ API передается как поле заголовка "x-api-key". Даже после добавления этого поля в заголовок, эта проблема может возникнуть. В этом случае, пожалуйста, подтвердите ниже пункты
Для частных шлюзов 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}'
Его документировано ниже,
Мне удалось получить успешный ответ от Lambda, используя приведенную ниже конфигурацию в родном приложении Postman -
На вкладке авторизации (по какой-то причине это не сработало, когда я передал те же параметры под заголовком)
Ключ: X-API-ключ
Значение: ваш-api-ключ-значение
Добавить к: Заголовок