Questa guida mostra come configurare Google Cloud
Mappe URL. Una mappa URL è un insieme di regole per instradare le richieste HTTP(S) in arrivo a
servizi di backend o bucket di backendspecifici.
Una mappa URL minima corrisponde a tutti i percorsi delle richieste in entrata (/*
).
Prima di seguire questa guida, acquisisci familiarità con la mappa URL concetti fondamentali.
Le mappe di URL vengono utilizzate con i seguenti prodotti Google Cloud:
- Bilanciatore del carico delle applicazioni esterno (globale, classico e a livello di regione )
- Bilanciatore del carico delle applicazioni interno
Mappe URL utilizzate con bilanciatori del carico delle applicazioni esterni globali, Application Load Balancer esterni regionali i bilanciatori del carico delle applicazioni interni e Cloud Service Mesh supportano anche diverse funzionalità di gestione del traffico. Per ulteriori informazioni, consulta i concetti della mappa URL: Traffico avanzato dei modelli.
Impostazioni predefinite della mappa URL
Le mappe URL hanno due valori predefiniti, come descritto nella tabella seguente.
Tipo predefinito | Impostazione | Significato |
---|---|---|
Valore predefinito della mappa URL | gcloud compute url-maps create
|
Viene utilizzato il servizio di backend o il bucket di backend predefinito specificato se nessuno dei matcher di percorso o delle regole host corrisponde all'URL in arrivo. |
Valore predefinito dello strumento di abbinamento del percorso | gcloud compute url-maps add-path-matcher
|
Viene utilizzato il servizio di backend o il bucket di backend predefinito specificato
se l'URL
il percorso corrisponde a un matcher di percorso, ma nessuno dei valori specificati
--path-rules corrispondenza. |
Regole host
Una regola host definisce un insieme di host a cui abbinare le richieste.
In una regola host, il nome host deve essere un nome di dominio completo (FQDN). Il nome host non può essere un indirizzo IPv4 o IPv6. Ad esempio:
- Lavora:
example.com
- Lavora:
web.example.com
- Lavora:
*.example.com
- Non funziona:
35.244.221.250
Configura le mappe URL
Una mappa URL può inviare traffico a servizi di backendo a bucket di backend. I bucket di backend non sono supportati con i bilanciatori del carico delle applicazioni esterni regionali e i bilanciatori del carico delle applicazioni interni.
Console
Per aggiungere una mappa URL utilizzando la console Google Cloud, esegui queste operazioni: passaggi:
- Vai alla pagina Bilanciamento del carico.
- Fai clic sul nome di un bilanciatore del carico.
- Nella pagina Dettagli del bilanciatore del carico, fai clic su Modifica per il bilanciatore del carico selezionato.
- Seleziona Regole host e percorso.
- Fai clic su Aggiungi regola host e percorso.
Compila i campi Host, Percorsi o entrambi i campi e seleziona un servizio di backend o bucket di backend.
- Inserisci un nome host completo, ad esempio
web.example.com
. - Inserisci il percorso, ad esempio
/video
. - Nella pagina Regole di host e percorso, nel menu Backend, selezionare un servizio di backend o un bucket di backenddisponibile.
- Inserisci un nome host completo, ad esempio
Cerca il segno di spunta blu a sinistra di Regole host e percorso e fai clic sul pulsante Aggiorna.
gcloud
Per aggiungere una mappa URL utilizzando Google Cloud CLI, utilizza la
Comando url-maps create
:
gcloud compute url-maps create URL_MAP_NAME \ (--default-backend-bucket=DEFAULT_BACKEND_BUCKET | --default-service=DEFAULT_SERVICE) \ [--description DESCRIPTION] \ [--global | --region=REGION]
Per i bilanciatori del carico delle applicazioni esterni regionali e i bilanciatori del carico delle applicazioni interni, assicurati di includere
il flag --region
quando crei la mappa URL.
Per creare un matcher di percorso, utilizza il metodo
gcloud compute url-maps add-path-matcher
:
gcloud compute url-maps add-path-matcher URL_MAP_NAME \ (--default-backend-bucket=DEFAULT_BACKEND_BUCKET | --default-service=DEFAULT_SERVICE) \ --path-matcher-name PATH_MATCHER \ [--path-rules="PATH=SERVICE or BUCKET"]
Questo comando richiede un servizio di backend o un bucket di backend predefinito in cui
può inviare richieste senza corrispondenza. Il flag --path-rules
definisce le mappature tra i percorsi delle richieste e i servizi o i bucketdi backend. Nell'esempio che segue
instrada i percorsi di richiesta /video/
e /video/*
verso video-service
di servizio di backend:
--path-rules="/video=video-service,/video/*=video-service"
Per creare una regola host, utilizza il
gcloud compute url-maps add-host-rule
:
gcloud compute url-maps add-host-rule URL_MAP_NAME \ --hosts=[HOSTS] --path-matcher-name=PATH_MATCHER
Ad esempio, il seguente valore --hosts
corrisponde alle richieste relative a www.example.com
e a qualsiasi sottodominio di altostrat.com
:
--hosts=[*.altostrat.com,www.example.com]
Per modificare il servizio o il bucket predefinito di una mappa URL, utilizza la
Comando url-maps set-default-service
:
gcloud compute url-maps set-default-service URL_MAP_NAME (--default-backend-bucket=DEFAULT_BACKEND_BUCKET | --default-service=DEFAULT_SERVICE)[GCLOUD_WIDE_FLAG ...]
Terraform
Per creare una mappa URL globale, utilizza la proprietà google_compute_url_map risorsa.
Per creare una mappa URL a livello di regione, utilizza la proprietà google_compute_region_url_map risorsa.
Convalida la configurazione della mappa degli URL
Prima di eseguire il deployment di una mappa URL, assicurati di convalidare la relativa configurazione per verificare che indirizzi le richieste ai backend appropriati come previsto. Per farlo, aggiungi i test alla configurazione della mappa di URL. Puoi sperimentare con diverse regole della mappa URL ed eseguire tutti i test necessari per assicurarti che la mappa indirizzi il traffico in modo appropriato quando viene implementata. Inoltre, se in futuro sono necessarie modifiche alle regole, puoi testarle prima che saranno effettivamente pubblicati con la nuova configurazione.
Utilizza il comando gcloud compute url-maps
validate
per convalidare la configurazione della mappa di URL. Questo comando testa solo la configurazione fornita.
Indipendentemente dal fatto che i test siano stati superati o meno, non vengono salvate modifiche nella mappa degli URL di cui è stato eseguito il deployment. Questo comportamento è diverso da altri comandi delle mappe URL
(edit
, import
), che eseguono gli stessi test, ma che in realtà salveranno il nuovo
se i test vengono superati. Quando vuoi testare una nuova configurazione di routing senza apportare modifiche alla mappa URL di cui è stato eseguito il deployment, utilizza il comando validate
.
Il comando validate
ti consente di testare configurazioni avanzate delle route come
routing basato su intestazioni e parametri di ricerca, reindirizzamenti da HTTP a HTTPS e URL
riscritture.
Console
Non puoi utilizzare la console Google Cloud per convalidare la configurazione della mappa di URL.
Utilizza gcloud
o l'API REST.
gcloud
Per convalidare la configurazione della mappa URL, utilizza il
gcloud compute url-maps validate
.
Per il bilanciatore del carico delle applicazioni esterno globale:
gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE \ --load-balancing-scheme=EXTERNAL_MANAGED \ --global
Per il bilanciatore del carico delle applicazioni classico:
gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE \ --load-balancing-scheme=EXTERNAL \ --global
- PATH_TO_URL_MAP_CONFIG_FILE: sostituisci con un percorso al file contenente la configurazione della mappa URL per la convalida.
Convalida le modifiche alla mappa URL di un bilanciatore del carico esistente
Se hai già un bilanciatore del carico che richiede modifiche alla mappa degli URL, puoi testare queste modifiche di configurazione prima di renderle attive.
Esporta la mappa URL esistente del bilanciatore del carico in un file YAML.
gcloud compute url-maps export URL_MAP_NAME \ --destination PATH_TO_URL_MAP_CONFIG_FILE \ --global
Modifica il file YAML con la nuova configurazione. Ad esempio, se vuoi modificare un bilanciatore del carico delle applicazioni esterno e inviare tutte le richieste con il percorso
/video
a un nuovo servizio di backend chiamatovideo-backend-service
, puoi aggiungere test alla configurazione della mappa URL come segue:Configurazione esistente della mappa URL con un singolo
web-backend-service
predefinito:kind: compute#urlMap name: URL_MAP_NAME defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service
La configurazione della mappa URL è stata modificata con l'aggiunta di un matcher del percorso e di test per entrambi il valore predefinito
web-backend-service
e il nuovovideo-backend-service
di servizio di backend:kind: compute#urlMap name: URL_MAP_NAME defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service hostRules: - hosts: - '*' pathMatcher: pathmap pathMatchers: - defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service name: pathmap pathRules: - paths: - /video - /video/* service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/video-backend-service tests: - description: Test routing to existing web service host: foobar path: / service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service - description: Test routing to new video service host: foobar path: /video service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/video-backend-service
Convalida la nuova configurazione.
gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE
Se tutti i test hanno esito positivo, dovrebbe essere visualizzato un messaggio di operazione riuscita, ad esempio:
Successfully validated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/URL_MAP_CONFIG_FILE_NAME]
Se i test non vanno a buon fine, viene visualizzato un messaggio di errore. Apporta le correzioni necessarie a il file di configurazione della mappa URL e prova a eseguire di nuovo la convalida.
Error: Invalid value for field 'urlMap.tests': ''. Test failure: Expect URL 'HOST/PATH' to map to service 'EXPECTED_BACKEND_SERVICE', but actually mapped to 'ACTUAL_BACKEND_SERVICE'.
Una volta che sai che la nuova configurazione funziona e non influisce sulla configurazione esistente, puoi importarla nella mappa degli URL. Tieni presente che questo passaggio consente anche di eseguire il deployment della mappa URL con la nuova configurazione.
gcloud compute url-maps import URL_MAP_NAME \ --source PATH_TO_URL_MAP_CONFIG_FILE \ --global
Aggiungere test a una mappa URL
Puoi aggiungere test di configurazione a una mappa URL per assicurarti che i percorsi della mappa degli URL le richieste ai servizi o ai bucket di backend come previsto.
Questa sezione descrive come aggiungere test a una mappa URL che è già stata di cui è stato eseguito il deployment. Se vuoi testare le nuove modifiche a una mappa di URL senza effettivamente eseguire il deployment della mappa, consulta Verificare la configurazione della mappa di URL.
Quando modifichi la mappa URL, i test vengono eseguiti e viene visualizzato un messaggio di errore se il test ha esito negativo:
Error: Invalid value for field 'urlMap.tests': ''. Test failure: Expect URL 'HOST/PATH' to map to service 'EXPECTED_BACKEND_SERVICE', but actually mapped to 'ACTUAL_BACKEND_SERVICE'.
L'aggiunta di test alle mappe URL è facoltativa.
Console
Per eseguire i test dalla console Google Cloud:
- Vai alla pagina Bilanciamento del carico.
- Fai clic sul nome di un bilanciatore del carico.
- Nella pagina Dettagli del bilanciatore del carico, fai clic su Modifica per il bilanciatore del carico selezionato.
- Fai clic su Regole di routing. Per un bilanciatore del carico delle applicazioni classico, si tratta di Regole host e percorso.
- Fai clic su Mostra test di configurazione.
- Fai clic su Aggiungi test di configurazione. Aggiungi i seguenti URL di test e backend:
- Host e percorso di test 1
example.com
e Backendwww-service.
- Host di test e percorso 2
example.net
e backendwww-service.
- Host di test e percorso 3
example.net/web
e backendwww-service.
- Host e percorso di test 4
example.com/videos
e Backendvideo-service.
- Host di test e percorso 5
example.com/videos/browse
e backendvideo-service.
- Host e percorso di test 6
example.net/static
e Backendstatic-service.
- Host di test e percorso 7
example.net/static/images
e backendstatic-service.
- Host e percorso di test 1
- Cerca il segno di spunta blu a sinistra di Regole di routing. fai clic sul pulsante Aggiorna. Per un bilanciatore del carico delle applicazioni classico, cerca il segno di spunta blu accanto a Regole host e percorso.
gcloud
Per aggiungere test alla mappa URL utilizzando Google Cloud CLI, utilizza il comando
gcloud compute url-maps edit
:
gcloud compute url-maps edit URL_MAP_NAME
Viene avviato un editor di testo. Per i bilanciatori del carico delle applicazioni esterni, i test devono utilizzare il seguente formato:
tests: - host: example.com service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/www-service - host: example.net service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/www-service - host: example.com path: /videos service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/video-service - host: example.com path: /videos/browse service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/video-service - host: example.net path: /web service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/www-service - host: example.net path: /static service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/static-service - host: example.net path: /static/images service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/static-service
Tieni presente che se non specifichi un host in una regola host, gli URL di tutti gli host (sia example.com che example.net) possono corrispondere. Se hai regole host, devi creare regole che corrispondono sia a example.com che a example.net.
Elenca mappe URL
Console
Non puoi elencare tutte le mappe di URL nella console Google Cloud.
gcloud
Per visualizzare un elenco di mappe URL utilizzando Google Cloud CLI,
utilizza il comando url-maps list
.
gcloud compute url-maps list
Ottenere informazioni su una mappa URL
Console
Per ottenere informazioni su una mappa di URL:
- Vai alla pagina Bilanciamento del carico.
- Fai clic sul nome di un bilanciatore del carico.
- Nella pagina Dettagli del bilanciatore del carico, fai clic su Modifica per il bilanciatore del carico selezionato.
- Visualizza le regole host e percorso.
gcloud
Per ottenere informazioni su una singola mappa URL utilizzando Google Cloud CLI,
utilizza la url-maps describe
.
gcloud compute url-maps describe URL_MAP_NAME
Elimina una mappa URL
Puoi eliminare una mappa URL solo dopo aver eliminato tutti i proxy di destinazione che vi fanno riferimento. Per ulteriori informazioni, consulta la sezione sull'eliminazione di un proxy di destinazione.
Console
Per eliminare una mappa URL:
- Vai alla pagina Bilanciamento del carico.
- Fai clic sul nome di un bilanciatore del carico.
- Nella pagina Dettagli del bilanciatore del carico, fai clic su Modifica per il bilanciatore del carico selezionato.
- Nella pagina Dettagli del bilanciatore del carico, visualizza le Regole host e percorso.
- Fai clic sulla "X" a destra di una mappa URL per eliminarla. La mappa URL scompare.
- Cerca il segno di spunta blu a sinistra di Regole host e percorso e fai clic sul pulsante Aggiorna.
gcloud
Per eliminare una mappa di URL utilizzando Google Cloud CLI, utilizza il comando
url-maps delete
.
Prima di poter eliminare una mappa URL, è necessario eliminare tutti i proxy HTTP di destinazione che fanno riferimento alla mappa URL.
gcloud compute url-maps delete URL_MAP_NAME [--quiet]
Eliminare un corrispettivo percorso
Console
Per eliminare un corrispettivo percorso:
- Vai alla pagina Bilanciamento del carico.
- Fai clic sul nome di un bilanciatore del carico.
- Nella pagina Dettagli del bilanciatore del carico, fai clic su Modifica per il bilanciatore del carico selezionato.
- Seleziona Regole host e percorso.
- Nel campo Percorsi di una mappa URL esistente, fai clic sulla "x" sul nome del corrispettivo percorso.
- Cerca il segno di spunta blu a sinistra di Regole host e percorso e fai clic sul pulsante Aggiorna.
gcloud
Per eliminare un matcher di percorso, utilizza
gcloud compute url-maps remove-path-matcher
:
gcloud compute url-maps remove-path-matcher URL_MAP_NAME \ [--path-matcher-name PATH_MATCHER]
Elimina una regola host
Console
Per eliminare una regola host:
- Se non ti trovi già nella pagina Regole host e percorso, vai alla pagina Equilibrazione del carico.
- Fai clic sul nome di un bilanciatore del carico.
- Nella pagina Dettagli del bilanciatore del carico, fai clic su Modifica per il bilanciatore del carico selezionato.
- Seleziona Regole host e percorso.
- Nel campo Host di una mappa di URL esistente, fai clic sulla "x" sul nome dell'host.
- Cerca il segno di spunta blu a sinistra di Regole host e percorso e fai clic sul pulsante Aggiorna.
gcloud
Per eliminare una regola host dalla mappa URL, utilizza il comando
gcloud compute url-maps remove-host-rule
:
gcloud compute url-maps remove-host-rule URL_MAP_NAME --host=HOST
Ad esempio, per rimuovere una regola host che contiene l'host altostrat.com
da
una mappa di URL denominata my-map
, devi eseguire il seguente comando:
gcloud compute url-maps remove-host-rule my-map --host altostrat.com
Guide alla gestione del traffico
Non tutte le funzionalità delle mappe URL sono disponibili per tutti i prodotti. Le mappe URL vengono utilizzate con bilanciatori del carico per supportare diverse funzionalità avanzate di gestione del traffico, non tutte supportati dal bilanciatore del carico delle applicazioni classico.
Utilizza la seguente tabella per scoprire le funzionalità della mappa URL per di Google Cloud.
API e riferimento all'interfaccia a riga di comando gcloud
Oltre alla console Google Cloud, puoi utilizzare l'API e gcloud CLI per creare le mappe URL.
API
Per le descrizioni delle proprietà e dei metodi a tua disposizione quando lavori. con le mappe URL tramite l'API REST, consulta quanto segue:
Prodotto | Documentazione dell'API |
---|---|
Application Load Balancer esterno | urlMaps |
Bilanciatore del carico delle applicazioni interno | regionUrlMaps |
Cloud Service Mesh | urlMaps |
Interfaccia a riga di comando gcloud
Per Google Cloud CLI in Google Cloud CLI, consulta quanto segue:
- Globale:
--global
- Regionale:
--region=[REGION]
Per la gestione avanzata del traffico, utilizza i file YAML e importali con il comando
gcloud compute url-maps import
.
Passaggi successivi
- Per informazioni sul funzionamento delle mappe URL, consulta la Panoramica delle mappe URL.
- Per informazioni su come, consulta la panoramica del bilanciatore del carico delle applicazioni esterno Le mappe URL funzionano nei bilanciatori del carico delle applicazioni esterni.
- Per informazioni su come funzionano le mappe URL nei bilanciatori del carico delle applicazioni interni, consulta la Panoramica del bilanciatore del carico delle applicazioni interno.