Utilizzo di gRPC con le distribuzioni CloudFront
Amazon CloudFront supporta gRPC, un framework RPC (Remote Procedure Call) open source basato su HTTP/2. gRPC offre streaming bidirezionale e protocollo binario che bufferizza i payload, rendendolo adatto per applicazioni che richiedono comunicazioni a bassa latenza.
CloudFront riceve le tue richieste gRPC e le invia tramite proxy direttamente alle tue origini. È possibile utilizzare CloudFront per eseguire il proxy di quattro tipi di servizi gRPC:
-
RPC unario
-
Streaming del server RPC
-
Streaming del client RPC
-
Streaming bidirezionale RPC
Come funziona gRPC in CloudFront
Per configurare gRPC in CloudFront, imposta un'origine che fornisca un servizio gRPC come origine della distribuzione. È possibile utilizzare origini che forniscono servizi non gRPC e gRPC. CloudFront determina se la richiesta in arrivo è una richiesta gRPC o una richiesta HTTP/HTTPS in base all'intestazione Content-Type. Se l'intestazione Content-Type di una richiesta ha il valore di application/grpc, la richiesta viene considerata una richiesta gRPC e CloudFront trasferirà la richiesta all'origine.
Nota
Per consentire a una distribuzione di gestire le richieste gRPC, includi HTTP/2 come una delle versioni HTTP supportate e consenti i metodi HTTP, incluso POST. L’endpoint di origine gRPC deve essere configurato per supportare HTTPS, poiché CloudFront supporta solo connessioni gRPC sicure (basate su HTTPS). gRPC supporta solo HTTPS end-to-end. Se utilizzi un’origine personalizzata, verifica che le impostazioni Protocollo supportino HTTPS.
Per abilitare il supporto gRPC per la distribuzione, completa le seguenti fasi:
-
Aggiorna il comportamento cache della distribuzione per consentire i metodi HTTP, incluso il metodo
POST. -
Dopo aver selezionato il metodo
POST, seleziona la casella di controllo gRPC che viene visualizzata. -
Specifica HTTP/2 come una delle versioni HTTP supportate.
Per ulteriori informazioni, consulta i seguenti argomenti:
-
GrpcConfig nella Documentazione di riferimento delle API di Amazon CloudFront
Poiché gRPC è utilizzato solo per traffico API non memorizzabile nella cache, le configurazioni della cache non influiranno sulle richieste gRPC. Puoi usare una policy di richiesta di origine per aggiungere intestazioni personalizzate alle richieste gRPC inviate alla all’origine gRPC. Puoi utilizzare AWS WAF con CloudFront per gestire l'accesso alla tua distribuzione gRPC, controllare i bot e proteggere le tue applicazioni gRPC dagli exploit web. CloudFront gRPC supporta le Funzioni CloudFront.
Oltre allo stato HTTPS, riceverai grpc-status insieme alla risposta gRPC. Per un elenco dei valori possibili per grpc-status, consulta Codici di stato e loro utilizzo in gRPC
Note
gRPC non supporta le seguenti funzionalità CloudFront:
-
Failover di origine non è supportato con gRPC, poiché gRPC utilizza il metodo
POST. CloudFront esegue il failover sull'origine secondaria solo quando il metodo HTTP della richiesta del visualizzatore èGET,HEADoOPTIONS. -
CloudFront invia tramite proxy le richieste gRPC direttamente all’origine e ignora la Regional Edge Cache (REC). Poiché gRPC aggira il REC, gRPC non supporta Lambda@Edge o Origin Shield.
-
gRPC non supporta le regole di ispezione del corpo della richiesta AWS WAF. Se hai abilitato queste regole sull’ACL Web per una distribuzione, qualsiasi richiesta che utilizza gRPC ignorerà le regole di ispezione del corpo della richiesta. Tutte le altre regole AWS WAF continueranno ad essere applicate. Per ulteriori informazioni, consulta Abilitazione di AWS WAF per le distribuzioni.