Uso de gRPC con distribuciones de CloudFront - Amazon CloudFront

Uso de gRPC con distribuciones de CloudFront

Amazon CloudFront es compatible con gRPC, un marco de llamadas a procedimientos remotos (RPC) de código abierto basado en HTTP/2. gRPC ofrece streaming bidireccional y protocolo binario que almacena en búfer cargas útiles, lo que lo hace adecuado para aplicaciones que requieren comunicaciones de baja latencia.

CloudFront recibe las solicitudes de gRPC y las entrega directamente a sus orígenes. Puede usar CloudFront para entregar cuatro tipos de servicios de gRPC:

  • RPC unitario

  • RPC de streaming de servidores

  • RPC de streaming de cliente

  • RPC de streaming bidireccional

Cómo funciona gRPC en CloudFront

Para configurar gRPC en CloudFront, defina un origen que proporcione un servicio de gRPC como origen de la distribución. Puede usar orígenes que proporcionen servicios de gRPC y que no sean de gRPC. CloudFront determina si la solicitud entrante es una solicitud de gRPC o una solicitud HTTP/HTTPS en función del encabezado de Content-Type. Si el encabezado de Content-Type de una solicitud tiene un valor de application/grpc, la solicitud se considera una solicitud de gRPC y CloudFront la entregará al origen.

nota

Para activar una distribución para administrar solicitudes de gRPC, incluya HTTP/2 como una de las versiones HTTP compatibles y permita los métodos HTTP, como POST. El punto de conexión de origen de gRPC debe estar configurado para admitir HTTPS, ya que CloudFront solo admite conexiones gRPC seguras (basadas en HTTPS). gRPC solo admite HTTPS de punto a punto. Si utiliza un origen personalizado, compruebe que la configuración de su protocolo sea compatible con HTTPS.

Para activar la compatibilidad con gRPC en su distribución, complete los siguientes pasos:

  1. Actualice el comportamiento de la caché de su distribución para permitir los métodos HTTP, como el método POST.

  2. Seleccione la casilla de verificación de gRPC que aparece después de seleccionar el método POST.

  3. Especifique HTTP/2 como una de las versiones HTTP compatibles.

Para obtener más información, consulte los temas siguientes:

Como gRPC se usa solo para el tráfico de API que no se puede almacenar en caché, las configuraciones de la caché no afectarán a las solicitudes de gRPC. Puede usar una política de solicitud de origen para agregar encabezados personalizados a las solicitudes de gRPC que se envían al origen de gRPC. Puede usar AWS WAF con CloudFront para administrar el acceso a la distribución de gRPC, controlar los bots y proteger las aplicaciones de gRPC de las vulnerabilidades de la web. CloudFront gRPC admite CloudFront Functions.

Además del estado HTTPS, recibirá grpc-status junto con la respuesta de gRPC. Para obtener una lista de los posibles valores de grpc-status, consulte: Status codes and their use in gRPC.

Notas

gRPC no admite las siguientes características de CloudFront:

  • Implementación continua

  • Respuestas de error personalizadas

  • La conmutación por error de origen no es compatible con gRPC, ya que gRPC utiliza el método POST. CloudFront conmuta por error al origen secundario solo cuando el método HTTP de la solicitud del lector es GET, HEAD u OPTIONS.

  • CloudFront entrega las solicitudes de gRPC directamente al origen y evita la caché perimetral regional (REC). Como gRPC omite REC, gRPC no es compatible con Lambda@Edge ni con Origin Shield.

  • gRPC no admite las reglas de inspección del cuerpo de la solicitud de AWS WAF. Si habilitó estas reglas en la ACL web para una distribución, cualquier solicitud que utilice gRPC ignorará las reglas de inspección del cuerpo de la solicitud. Se seguirán aplicando todas las demás reglas de AWS WAF. Para obtener más información, consulte Habilitación de AWS WAF para distribuciones.