Deployment di un'API in un gateway
Prerequisiti
Prima di poter eseguire il deployment di una configurazione API su API Gateway, assicurati di aver:
Hai preparato l'ambiente di sviluppo come descritto in Configurazione dell'ambiente di sviluppo.
Hai creato una configurazione API dalla definizione dell'API.
Requisiti per l'ID gateway
Molti dei comandi gcloud mostrati di seguito richiedono di specificare l'ID del gateway nel formato: GATEWAY_ID.
API Gateway applica i seguenti requisiti per l'ID gateway:
- Deve avere una lunghezza massima di 49 caratteri.
- Deve contenere solo lettere minuscole, numeri o trattini.
- Non può iniziare con un trattino.
- Non deve contenere un trattino basso.
Definizione dell'endpoint della configurazione API di cui è stato eseguito il deployment
Quando esegui il deployment di una configurazione API su un gateway, API Gateway crea un URL univoco
per il gateway nel dominio gateway.dev. I client API utilizzano poi un URL nel formato seguente per accedere alla configurazione API di cui è stato eseguito il deployment:
https://GATEWAY_ID-HASH.REGION_CODE.gateway.dev
dove GATEWAY_ID è il nome del gateway, HASH è il codice hash univoco generato durante il deployment dell'API e REGION_CODE è il codice della posizione cloud in cui hai eseguito il deployment del gateway.
Ad esempio:
https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev
Esegui il deployment di una configurazione API in un gateway
Utilizza Google Cloud CLI per eseguire il deployment di una configurazione API su un gateway. Quando esegui il deployment della configurazione API, devi specificare il nome dell'API. Se il gateway non esiste già per l'API, questo comando lo crea.
Per eseguire il deployment di una configurazione API su un gateway:
Convalida l'ID progetto restituito dal seguente comando per assicurarti che il gateway non venga creato nel progetto sbagliato.
gcloud config list project
Se devi modificare il progetto predefinito, esegui questo comando e sostituisci PROJECT_ID con l'ID progetto Google Cloud in cui vuoi creare il servizio:
gcloud config set project PROJECT_ID
Visualizza la guida per il comando
gateway create:gcloud api-gateway gateways create --help
Esegui questo comando per eseguire il deployment della configurazione API nel gateway:
gcloud api-gateway gateways create GATEWAY_ID \ --api=API_ID --api-config=CONFIG_ID \ --location=GCP_REGION
dove:
- GATEWAY_ID specifica l'ID del nuovo gateway. Se il gateway non esiste già, questo comando lo crea.
- API_ID specifica l'ID dell'API API Gateway associata a questo gateway.
- CONFIG_ID specifica l'ID della configurazione API di cui è stato eseguito il deployment sul gateway. Quando crei un gateway, devi specificare una configurazione API.
GCP_REGION specifica la località cloud per il gateway di cui è stato eseguito il deployment.
Durante la creazione del gateway,
gcloudvisualizza le informazioni nel terminale.Al termine, puoi utilizzare questo comando per visualizzare i dettagli del gateway:
gcloud api-gateway gateways describe GATEWAY_ID \ --location=GCP_REGION
Questo comando restituisce quanto segue:
apiConfig: projects/PROJECT_ID/locations/global/apis/API_ID/configs/CONFIG_ID createTime: '2020-02-05T13:44:12.997862831Z' defaultHostname: my-gateway-a12bcd345e67f89g0h.uc.gateway.dev displayName: GATEWAY_ID name: projects/PROJECT_ID/locations/GCP_REGION/gateways/GATEWAY_ID serviceAccount: email: gateway-111111@222222-tp.iam.gserviceaccount.com state: ACTIVE updateTime: '2020-02-05T13:45:00.844705087Z'
Prendi nota del valore della proprietà
defaultHostname. Questa è la parte del nome host dell'URL del gateway. Per accedere a una configurazione API di cui è stato eseguito il deployment su questo gateway, utilizza un URL nel formato:https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev
Google Cloud CLI accetta molte opzioni, incluse quelle descritte nella documentazione di riferimento di gcloud. Inoltre, per API Gateway, puoi impostare le seguenti opzioni quando crei un gateway:
--async: restituisce immediatamente il controllo al terminale, senza attendere il completamento dell'operazione.--display-name=NAME: specifica il nome visualizzato del gateway, ovvero il nome mostrato nella UI. Non utilizzare spazi nel nome. Utilizza trattini e trattini bassi. Il valore predefinito è GATEWAY_ID.--labels=KEY1=VALUE1,KEY2=VALUE2,...: specifica le etichette associate al gateway.
Elenco di gateway
Per elencare i gateway per un progetto specifico:
gcloud api-gateway gateways list
Questo comando restituisce un output nel formato:
GATEWAY_ID LOCATION DISPLAY_NAME STATE CREATE_TIME UPDATE_TIME my-gateway us-central1 my-gateway ACTIVE 2021-01-07T00:04:19 2022-05-21T00:33:46
Per elencare i gateway per un progetto e una regione specifici:
gcloud api-gateway gateways list --location=GCP_REGION
Utilizza un'espressione filter per elencare i gateway associati a un'API specifica:
gcloud api-gateway gateways list \ --filter="apiConfig:projects/PROJECT_ID/locations/global/apis/API_ID/*" \
In alternativa, utilizza questo filter per elencare i gateway per una configurazione API specifica:
gcloud api-gateway gateways list \ --filter="apiConfig:projects/PROJECT_ID/locations/global/apis/API_ID/configs/CONFIG_ID" \ --project=PROJECT_ID
Utilizza gli ID regione e gateway per ottenere informazioni dettagliate sul gateway, inclusa l'identità della configurazione API di cui è stato eseguito il deployment sul gateway:
gcloud api-gateway gateways describe GATEWAY_ID \ --location=GCP_REGION
Aggiornamento di un gateway
Aggiorna un gateway a:
- Esegui il deployment di una configurazione API diversa sul gateway
- Aggiornare il nome visualizzato
- Aggiorna le etichette
Utilizza il seguente comando gcloud per aggiornare un gateway esistente, dove UPDATE_OPTIONS viene sostituito con il flag e il valore dell'opzione del gateway che vuoi aggiornare:
gcloud api-gateway gateways update GATEWAY_ID \ UPDATE_OPTIONS --api=API_ID --location=GCP_REGION
Ad esempio, per aggiornare la configurazione API di cui è stato eseguito il deployment sul gateway:
gcloud api-gateway gateways update GATEWAY_ID \ --api-config=NEW_CONFIG_ID --api=API_ID --location=GCP_REGION
dove NEW_CONFIG_ID specifica la nuova configurazione API da eseguire il deployment sul gateway.
Per un elenco completo di flag e argomenti di aggiornamento disponibili, consulta il riferimento gcloud api-gateway gateways update o utilizza il seguente comando per visualizzare tutte le opzioni di aggiornamento:
gcloud api-gateway gateways update --help
Eliminazione di un gateway
Utilizza il seguente comando gcloud per eliminare un gateway esistente:
gcloud api-gateway gateways delete GATEWAY_ID \ --location=GCP_REGION