Tengo una tarea Fargate ECS que está bajo ALB y todo funciona bien. Dado que este ALB es interno, quiero exponerlo a través de la nueva puerta de HTTP API Gateway a través del enlace VPC para HTTP API .
Creé el nuevo enlace VPC para HTTP API (especificando el grupo de seguridad y las subredes para el ALB interno), creé la puerta de HTTP API Gateway y la conecté al enlace VPC + ALB .
Estoy tratando de mapear rutas específicas (y {proxy+} también en otros casos), pero parece que estoy obteniendo,
{ "message": "Service Unavailable" }en los enlaces correctos.
(En las URLs no existentes, obtengo 404 , como se esperaba). Intenté esto también con ALB frente a Internet (conectándolo también a través de un enlace VPC , solo con fines de prueba), pero parece que este es nuevamente el caso.
Incluso lo probé con NLB con enlace HTTP API VPC , y sigue teniendo el mismo comportamiento.
¿Alguna idea de si esto funciona? (Dado que está en la UI de usuario, ¿supongo que sí?)
ACTUALIZACIÓN : parece que solo funciona en la etapa default . Para otras etapas, he creado (dev y beta) para las cuales obtengo 404 .
Para mí, parece que dado que las URLs para dev y beta son /dev y /beta , el balanceador de carga se está "confundiendo".
VPC Link requiere estar en una subred privada (probablemente debido a NAT Gateways). Si lo coloca en subredes públicas, dará como resultado errores 503, que también podría ser su caso.
Las API HTTP no realizan el mapeo de URL como las API REST originales. API Gateway simplemente pasa la ruta que obtiene en curl/invoke para las API HTTP:
Si pasa /foo en la URL, el backend debería tener un recurso /foo
Si pasa /foo/bar en la URL, el backend debería tener un recurso /foo/bar
Para los VPC Links más antiguos, puede usar la URL para mapear
/foo -> /bar/bazEsa podría ser la razón de los 404.
En cuanto al 503 Service unavailable , eche un vistazo a los registros de acceso del ALB y vea si se reciben conexiones de API Gateway. Es probable que la solicitud se enrute al valor predeterminado en lugar de a cualquier regla ALB personalizada que haya definido. Esto conducirá su solicitud a un grupo objetivo incorrecto que causará 503 si los objetivos no están en buen estado o faltan.
Encontró 404, por lo que los clientes llegan a YourAPI. Puede ser solo la configuración de nginx.
Cliente <---"https" y fqdn---> API Gateway <--- "http" y fqdn ---> YourAPI
nginx en mi entorno a continuación,
server { listen 80; server_name xxxxxxxxxx.execute-api.ap-northeast-1.amazonaws.com; }