Dopo il deployment dell'API, gli utenti dell'API devono accedervi tramite un nome di dominio anziché un indirizzo IP. Puoi:
- Configura
.endpoints.PROJECT_ID.cloud.goog
come nome di dominio (dovePROJECT_ID
è il tuo ID progetto Google Cloud). - In alternativa, registra il tuo nome di dominio, ad esempio
example.com
, che prevede:- Configurare i server dei nomi DNS (o utilizzare Cloud DNS).
- Aggiornamento degli indirizzi del Registro di sistema in corso...
- Creazione e gestione dei record DNS.
Se hai già un'infrastruttura DNS o vuoi registrare il tuo nome di dominio, consulta Pubblicare un'API dal tuo nome di dominio per ulteriori informazioni.
Questa pagina descrive come configurare le API Cloud Endpoints in modo da utilizzare .endpoints.PROJECT_ID.cloud.goog
come nome di dominio. I passaggi di configurazione in questa pagina sono applicabili alle API che utilizzano
OpenAPI in esecuzione su Compute Engine, Google Kubernetes Engine o Kubernetes.
Il nome di dominio .endpoints.PROJECT_ID.cloud.goog
non è supportato per le API in esecuzione su App Engine. Per le API su App Engine, consigliamo di utilizzare PROJECT_ID.appspot.com
come nome del servizio endpoint. Quando esegui il deployment dell'API in App Engine, viene creata automaticamente una voce DNS con un nome nel formato PROJECT_ID.appspot.com
.
Il dominio .cloud.goog
è gestito da Google e condiviso dai clienti di Google Cloud. Poiché i progetti Google Cloud hanno un ID progetto univoco a livello globale, un nome di dominio nel formato .endpoints.PROJECT_ID.cloud.goog
è univoco e può essere utilizzato come nome di dominio per l'API. La configurazione del nome di dominio .endpoints.PROJECT_ID.cloud.goog
è facoltativa. Se preferisci, puoi registrare il tuo nome di dominio.
Prerequisiti
Come punto di partenza, questa pagina presuppone che tu abbia già creato l'API Cloud Endpoints e ne abbia eseguito il deployment su Compute Engine, Google Kubernetes Engine o Kubernetes. Se hai bisogno di un'API per i test, puoi utilizzare uno dei tutorial che illustrano la configurazione e il deployment di un'API di esempio.
Configurazione del DNS
La procedura seguente descrive come configurare le API DNS per Cloud Endpoints che utilizzano .endpoints.[PROJECT_ID].cloud.goog
come nome del servizio Endpoints dove [PROJECT_ID]
rappresenta l'ID progetto Google Cloud. Per praticità, la procedura fa riferimento al file di configurazione OpenAPI come openapi.yaml
.
Per configurare il DNS:
- Apri
openapi.yaml
e aggiungi il campox-google-endpoints
al file come mostrato nello snippet seguente:swagger: "2.0" host: "[API_NAME].endpoints.[PROJECT_ID].cloud.goog" x-google-endpoints: - name: "[API_NAME].endpoints.[PROJECT_ID].cloud.goog" target: "[IP_ADDRESS]"
In genere, i campi
host
ex-google-endpoints.name
vengono configurati in modo che corrispondano. Quando esegui il deployment della specifica OpenAPI, il testo specificato nel campohost
viene utilizzato come nome del servizio Endpoints. - Sostituisci
[API_NAME]
con il nome della tua API (ad esempio,bookstore
omy-cool-api
). - Sostituisci
[PROJECT_ID]
con l'ID del tuo progetto Google Cloud. - Sostituisci
[IP_ADDRESS]
con un indirizzo IPv4.Ad esempio, se esegui il deployment del servizio API Endpoints su un'istanza di macchina virtuale Compute Engine, puoi utilizzare l'IP esterno di quella macchina virtuale. In alternativa, se esegui il codice su un gruppo di istanze di macchine virtuali (o pod GKE) dietro un bilanciatore del carico, puoi utilizzare l'indirizzo IP del bilanciatore del carico.
- Esegui il deployment della tua nuova specifica OpenAPI in Service Management utilizzando il seguente comando:
gcloud endpoints services deploy openapi.yaml
Ad esempio, se in un file openapi.yaml
è specificato quanto segue:
swagger: "2.0" host: "my-cool-api.endpoints.my-project-id.cloud.goog" x-google-endpoints: - name: "my-cool-api.endpoints.my-project-id.cloud.goog" target: "192.0.2.1"
Quando esegui il deployment di openapi.yaml
utilizzando il comando gcloud
precedente,
Service Management crea un record A DNS, my-cool-api.endpoints.my-project-
id.cloud.goog
, che viene risolto nell'indirizzo IP di destinazione, 192.0.2.1
. Potrebbe essere necessario attendere qualche minuto per la propagazione della nuova configurazione DNS.
Passaggi successivi
- Abilitazione di SSL per endpoint
- Configurazione degli indirizzi IP
- Denominazione del servizio API
- Pubblicare un'API dal nome di dominio