Я пытаюсь импортировать файл openapi / swagger в шлюз api, но не могу установить безопасность, как ожидалось.Я хочу, чтобы ключ API требовался для всех путей.
Задание его ключа API требуется в консоли после импорта, но это решение нежелательно, также работает установка поля безопасности в каждом пути отдельно, ноЯ ищу глобальное решение.
Когда я пытаюсь импортировать файл, я получаю следующее предупреждение:
Your API was not imported due to errors in the Swagger file.
Method 'GET' on resource '/' specified security,
but no custom authorizers were created and the extension
x-amazon-apigateway-auth was not set.
This method will be not be secured.
Похоже, мне либо нужна лямбдакак пользовательский авторизатор только для ключа API (я не знаком с авторизаторами, но это, кажется, не имеет смысла, если он мне не нужен при настройке ключа API, требуемого в консоли);или мне нужно что-то сделать с этим загадочным x-amazon-apigateway-auth
, для которого я не могу найти документы (все другие расширения openapi, которые amazon описал здесь ).
Пример миниамала приведен ниже:
openapi: 3.0.1
info:
title: test
version: 0
servers:
- url: "/"
security:
- ApiKey: []
paths:
"/":
get:
# if I copy the security part into here things work
responses:
'204':
description: no content
x-amazon-apigateway-integration:
httpMethod: GET
type: http
uri: https://httpstat.us/204
components:
securitySchemes:
ApiKey:
type: apiKey
name: x-api-key
in: header
x-amazon-apigateway-api-key-source: HEADER
, так как защита ключа API установлена на корневом уровне, это позволяет мне предположить, что все пути должны использовать ключ API (если не перезаписаны отдельные пути), что на самом деле происходит, выше предупреждение и без APIключ требуется при импорте.