Прокси-сервер веб-сокета Apollo через API-шлюз - PullRequest
5 голосов
/ 20 февраля 2020

У меня сервер GraphQL Apollo, работающий в AWS Fargate (ECS), я использую API Gateway (интеграция HTTP-прокси) сверху. Цель этого API - использовать Cognito Authorizer в дополнение к защищенному SSL (HTTPS).

Это работает нормально, если задействованы HTTP-операции Graphql (запрос и мутация)

Однако подписки Graphql используют веб-сокеты. Интеграция с прокси-сервером, похоже, не справляется с обновлением протокола веб-сокета.

Я пытался определить новый API веб-сокета, следуя этой документации: https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api.html

Но, кажется, ничего не работает для меня. Я попытался определить $ connect, $ disconnect и $ default с интеграцией прокси-сервера HTTP с конечной точкой сервера Apollo, но я продолжаю получать:

Error during WebSocket handshake: Unexpected response code: 400

Возможно ли прокси для существующего API веб-сокета с помощью Amazon API Шлюз? Является ли интеграция прокси-сервера HTTP правильной интеграцией для использования?

Примечание. Реализация клиента в порядке, поскольку мои подписки работают, если я добавляю прямой URL-адрес к конечной точке веб-сокета сервера Apollo.

...