Tengo un servidor GraphQL Apollo que se ejecuta en AWS Fargate (ECS), estoy usando API Gateway (integración de proxy HTTP) en la parte superior. El propósito de esa API es hacer uso de Cognito Authorizer además de SSL seguro (HTTPS).
Esto funciona bien en lo que respecta a las operaciones HTTP de Graphql (consulta y mutación)
Sin embargo, las suscripciones de Graphql usan websockets. La integración de Proxy no parece manejar la actualización al protocolo websocket.
Intenté definir una nueva API websocket siguiendo esta documentación: https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api.html
Pero nada parece funcionar para mí. Intenté definir $connect, $disconnect y $default con una integración de proxy HTTP en el punto final del servidor Apollo, pero sigo recibiendo:
Error during WebSocket handshake: Unexpected response code: 400¿Es posible hacer proxy de una API websocket existente usando Amazon API Gateway? ¿Es la integración de proxy HTTP la integración correcta para usar?
Nota: La implementación del cliente está bien, ya que mis suscripciones funcionan si coloco la URL directa en el punto final del websocket del servidor Apollo.