Questa pagina descrive i file di configurazione necessari per creare un servizio gRPC gestito da Endpoints.
Prerequisiti
Per iniziare, questa pagina presuppone che tu abbia:
- Un progetto Google Cloud.
- Conoscenze di base sulla configurazione di un servizio API gRPC.
- Hai installato gRPC e gli strumenti gRPC. Per maggiori dettagli, consulta la guida introduttiva a gRPC.
Scegliere il nome del servizio
Cloud Endpoints utilizza il nome configurato nel file YAML di configurazione dell'API gRPC come nome del servizio.Il nome del servizio API deve essere univoco su Google Cloud. Poiché Endpoints utilizza nomi compatibili con il DNS per identificare i servizi, ti consigliamo di utilizzare il nome di dominio o del sottodominio dell'API come nome del servizio. Con questo approccio, il nome del servizio visualizzato nella pagina Endpoint Servizi corrisponde al nome utilizzato nelle richieste all'API. Inoltre, se il nome del servizio e il nome di dominio sono uguali, puoi creare un portale Cloud Endpoints per gli utenti dell'API. Endpoints ha i seguenti requisiti per il nome del servizio:
- La lunghezza massima del nome di dominio è 253 caratteri.
- Il nome di dominio deve iniziare con una lettera minuscola.
-
Ogni sezione del nome di dominio, delimitata da punti, deve soddisfare i seguenti requisiti:
- Deve iniziare con una lettera minuscola.
- Non deve terminare con un trattino.
- Gli altri caratteri possono essere lettere minuscole, numeri o trattini.
- La lunghezza massima è di 63 caratteri.
Puoi registrare un tuo dominio personalizzato (ad esempio example.com
) o utilizzare un dominio gestito da Google.
Utilizzare un dominio gestito da Google
Google possiede e gestisce il dominiocloud.goog
. Se vuoi utilizzare un dominio gestito da Google, devi utilizzare l'ID progetto Google Cloud come parte del nome del servizio. Poiché i progetti Google Cloud hanno un ID progetto univoco a livello mondiale, questo requisito garantisce che il nome del servizio sia univoco.
Se vuoi utilizzare il dominio cloud.goog
, il nome del servizio deve essere nel formato, dove YOUR_API_NAME
è il nome dell'API e YOUR_PROJECT_ID
è l'ID progetto Google Cloud:
YOUR_API_NAME.endpoints.YOUR_PROJECT_ID.cloud.goog`
Per utilizzare questo dominio come nome di dominio dell'API, leggi
Configurazione del DNS nel dominio cloud.goog
.
Utilizzo di un dominio personalizzato
Se non vuoi utilizzare un dominio gestito da Google, puoi utilizzare un dominio personalizzato (ad esempio myapi.mycompany.com
) di cui disponi dell'autorizzazione all'utilizzo.
Prima di eseguire il deployment della configurazione dell'API, segui i passaggi descritti in Verificare la proprietà del dominio.
Configurazione del buffer di protocollo
Crea un file
.proto
per il tuo servizio. Per maggiori dettagli, consulta la Guida per gli sviluppatori
.Compila i buffer di protocollo utilizzando il compilatore
protoc
per la tua lingua. Ad esempio:protoc --proto_path=. \ --include_imports \ --include_source_info \ --descriptor_set_out=api_descriptor.pb \ bookstore.proto
Nel comando precedente,
--proto_path
è impostato sulla directory di lavoro corrente. Nell'ambiente di compilazione gRPC, se utilizzi una directory diversa per i file di input.proto
, modifica--proto_path
in modo che il compilatore esegua la ricerca nella directory in cui hai salvato il file.proto
.Se il comando
protoc
per generare il file descrittore non va a buon fine, assicurati che:- La versione di
protoc
è aggiornata. - Hai specificato
--proto_path
o la sua forma abbreviata-I
per le directory principali dei file.proto
importati. Scopri di più nella documentazione relativa ai buffer di protocollo. - Hai specificato
--include_imports
.
Se vuoi che i tuoi client accedano al tuo servizio gRPC utilizzando HTTP con JSON, devi specificare in che modo i dati vengono tradotti da HTTP con JSON a gRPC. Ti consigliamo di annotare le API definite nel tuo file
.proto
. Per ulteriori informazioni, consulta Transcodifica di HTTP/JSON in gRPC.- La versione di
Configurazione del file di configurazione del servizio gRPC
Devi creare un file YAML di configurazione del servizio gRPC. In questo file specifichi il nome del servizio e le restrizioni di utilizzo, ad esempio la richiesta di una chiave API.
Puoi utilizzare il file api_config.yaml
dell'esempio Libreria come modello.
Salva una copia di
api_config.yaml
.Inserisci il nome del servizio nel campo
name
. Ad esempio:name: bookstore.endpoints.example-project-12345.cloud.goog
Inserisci il titolo visualizzato nella pagina Endpoints > Servizi nella console Google Cloud. Ad esempio:
title: Bookstore gRPC API
Inserisci il nome dell'API nel campo
apis:name
. Il testo inserito deve corrispondere esattamente al nome completo dell'API nel file.proto
. Ad esempio:apis: - name: endpoints.examples.bookstore.Bookstore
Configura il resto del file. Ad esempio:
# # API usage restrictions. # usage: rules: # ListShelves methods can be called without an API Key. - selector: endpoints.examples.bookstore.Bookstore.ListShelves allow_unregistered_calls: true
Per saperne di più, consulta la sezione Regole e selettori.
Passaggi successivi
- Esegui il deployment della configurazione di Endpoints
- Esegui il deployment del backend dell'API
- Configurazione dell'autenticazione
Altri esempi gRPC
- Versione Java dell'esempio Libreria.
L'esempio
getting-started-grpc
è disponibile su GitHub nelle seguenti lingue: