Utilizzo delle mappe URL

Questa guida mostra come configurare le mappe degli URL. Google CloudUna mappa URL è un insieme di regole per instradare le richieste HTTP(S) in entrata a servizi di backend specifici o bucket di backend. Una mappa URL minima corrisponde a tutti i percorsi delle richieste in entrata (/*).

Prima di seguire questa guida, acquisisci familiarità con i concetti relativi alla mappa degli URL.

Le mappe URL vengono utilizzate con i seguenti prodotti: Google Cloud

Le mappe URL utilizzate con i bilanciatori del carico delle applicazioni esterni globali, i bilanciatori del carico delle applicazioni esterni regionali, i bilanciatori del carico delle applicazioni interni e Cloud Service Mesh supportano anche diverse funzionalità avanzate di gestione del traffico. Per saperne di più, consulta Concetti relativi alla mappa URL: gestione avanzata del traffico.

Valori predefiniti 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

--default-service | --default-backend-bucket

Il servizio di backend o il bucket di backend predefinito specificato viene utilizzato se nessuno dei matcher di percorso o delle regole host corrisponde all'URL in entrata.
Matcher percorso predefinito gcloud compute url-maps add-path-matcher

--default-service | --default-backend-bucket

Il servizio di backend o il bucket di backend predefinito specificato viene utilizzato se il percorso dell'URL corrisponde a un matcher di percorso, ma nessuna delle --path-rules specificate corrisponde.

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:

  • Opere: example.com
  • Opere: web.example.com
  • Opere: *.example.com
  • Non funziona: 35.244.221.250

Configurare le mappe URL

Una mappa URL può inviare traffico a servizi di backend o 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 , segui questi passaggi:

  1. Vai alla pagina Bilanciamento del carico.

    Vai a Bilanciamento del carico

  2. Fai clic sul nome di un bilanciatore del carico.
  3. Nella pagina Dettagli del bilanciatore del carico, fai clic su Modifica per il bilanciatore del carico selezionato.
  4. Seleziona Regole host e percorso.
  5. Fai clic su Aggiungi regola host e percorso.
  6. Compila il campo Host, il campo Percorsi o entrambi e seleziona un servizio di backend o un bucket di backend.

    1. Inserisci un Nome host completo, ad esempio web.example.com.
    2. Inserisci il percorso, ad esempio /video.
    3. Nella pagina Regole di host e percorso, nel menu Backend, seleziona un servizio di backend o un bucket di backenddisponibile.
  7. 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 il 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 comando 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 a cui può inviare le richieste senza corrispondenza. Il flag --path-rules definisce i mapping tra i percorsi delle richieste e i servizi di backend o i bucket. L'esempio seguente instrada i percorsi delle richieste /video/ e /video/* al servizio di backend video-service:

--path-rules="/video=video-service,/video/*=video-service"

Per creare una regola host, utilizza il comando 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 www.example.com e a qualsiasi sottodominio di altostrat.com:

--hosts=[*.altostrat.com,www.example.com]

Per modificare il servizio predefinito o il bucket predefinito di una mappa URL, utilizza il 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 risorsa google_compute_url_map.

# url map
resource "google_compute_url_map" "default" {
  name            = "http-lb"
  default_service = google_compute_backend_bucket.default.id
}

Per creare una mappa URL a livello di regione, utilizza la risorsa google_compute_region_url_map.

resource "google_compute_region_url_map" "default" {
  name            = "regional-l7-xlb-map"
  region          = "us-west1"
  default_service = google_compute_region_backend_service.default.id
}

Convalida la configurazione della mappa degli URL

Prima di eseguire il deployment di una mappa URL, assicurati di convalidare la configurazione della mappa URL per assicurarti che la mappa instradi le richieste ai backend appropriati come previsto. Puoi farlo aggiungendo test alla configurazione della mappa degli URL. Puoi sperimentare 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 saranno necessarie modifiche alle regole, potrai testarle prima di pubblicare la nuova configurazione.

Utilizza il comando gcloud compute url-maps validate per convalidare la configurazione della mappa URL. Questo comando verifica solo la configurazione fornita. Indipendentemente dal fatto che i test vengano superati o meno, non vengono salvate modifiche alla mappa degli URL di cui è stato eseguito il deployment. Questo comportamento è diverso da altri comandi della mappa degli URL (edit, import), che eseguono anche gli stessi test, ma salvano la nuova configurazione 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 consente di testare configurazioni di route avanzate, ad esempio il routing basato su intestazioni eparametri di ricercay, i reindirizzamenti da HTTP a HTTPS e le riscritture degli URL.

Console

Non puoi utilizzare la console Google Cloud per convalidare la configurazione della mappa URL. Utilizza gcloud o l'API REST.

gcloud

Per convalidare la configurazione della mappa degli URL, utilizza il comando 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 del file che contiene la configurazione della mappa degli URL per la convalida.

Convalida le modifiche alla mappa URL di un bilanciatore del carico esistente

Se hai un bilanciatore del carico esistente che richiede modifiche alla mappa URL, puoi testare queste modifiche alla configurazione prima di pubblicarle.

  1. 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
    
  2. 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 chiamato video-backend-service, puoi aggiungere test alla configurazione della mappa URL nel seguente modo:

    Configurazione della mappa URL esistente 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
     

    Configurazione della mappa URL modificata con matcher di percorso e test aggiunti per il servizio di backend predefinito web-backend-service e quello nuovo video-backend-service:

     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
    
  3. Convalida la nuova configurazione.

    gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE
    

    Se tutti i test vengono superati, dovresti visualizzare un messaggio di operazione riuscita simile al seguente:

    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 al file di configurazione della mappa degli URL e prova di nuovo a eseguire 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'.
    
  4. Una volta verificato che la nuova configurazione funziona e non influisce sulla configurazione esistente, puoi importarla nella mappa degli URL. Tieni presente che questo passaggio esegue anche 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 la mappa URL instradi le richieste ai servizi di backend o ai bucket di backend come previsto.

Questa sezione descrive come aggiungere test a una mappa degli URL già implementata. Se vuoi testare nuove modifiche a una mappa URL senza eseguirne il deployment, consulta Convalida della configurazione della mappa URL.

Quando modifichi la mappa degli URL, vengono eseguiti i test e viene visualizzato un messaggio di errore se un test non va a buon fine:

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 degli URL è facoltativa.

Console

Per eseguire i test dalla Google Cloud console:

  1. Vai alla pagina Bilanciamento del carico.

    Vai a Bilanciamento del carico

  2. Fai clic sul nome di un bilanciatore del carico.
  3. Nella pagina Dettagli del bilanciatore del carico, fai clic su Modifica per il bilanciatore del carico selezionato.
  4. Fai clic su Regole di routing. Per un bilanciatore del carico delle applicazioni classico, si tratta di Regole host e percorso.
  5. Fai clic su Mostra test di configurazione.
  6. Fai clic su Aggiungi test di configurazione. Aggiungi i seguenti URL di test e backend:
    • Prova host e percorso 1 example.com e Backend www-service.
    • Prova host e percorso 2 example.net e backend www-service.
    • Prova host e percorso 3 example.net/web e Backend www-service.
    • Prova host e percorso 4 example.com/videos e Backend video-service.
    • Prova host e percorso 5 example.com/videos/browse e Backend video-service.
    • Prova host e percorso 6 example.net/static e Backend static-service.
    • Prova host e percorso 7 example.net/static/images e Backend static-service.
  7. Cerca il segno di spunta blu a sinistra di Regole di routing e 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, possono corrispondere gli URL di tutti gli host (sia example.com che example.net). Se hai regole host, devi creare regole che corrispondano sia a example.com che a example.net.

Elenca mappe URL

Console

Non puoi elencare tutte le tue mappature degli URL nella Google Cloud console.

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 degli URL:

  1. Vai alla pagina Bilanciamento del carico.

    Vai a Bilanciamento del carico

  2. Fai clic sul nome di un bilanciatore del carico.
  3. Nella pagina Dettagli del bilanciatore del carico, fai clic su Modifica per il bilanciatore del carico selezionato.
  4. Visualizza le regole host e percorso.

gcloud

Per ottenere informazioni su una singola mappa URL utilizzando Google Cloud CLI, utilizza il comando 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 la fanno riferimento. Per saperne di più, consulta la sezione Eliminazione di un proxy di destinazione.

Console

Per eliminare una mappa URL:

  1. Vai alla pagina Bilanciamento del carico.

    Vai a Bilanciamento del carico

  2. Fai clic sul nome di un bilanciatore del carico.
  3. Nella pagina Dettagli del bilanciatore del carico, fai clic su Modifica per il bilanciatore del carico selezionato.
  4. Nella pagina Dettagli del bilanciatore del carico, visualizza le Regole host e percorso.
  5. Fai clic sulla "X" a destra di una mappa URL per eliminarla. La mappa URL scompare.
  6. Cerca il segno di spunta blu a sinistra di Regole host e percorso e fai clic sul pulsante Aggiorna.

gcloud

Per eliminare una mappa 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]

Elimina un matcher di percorso

Console

Per eliminare un matcher di percorso:

  1. Vai alla pagina Bilanciamento del carico.

    Vai a Bilanciamento del carico

  2. Fai clic sul nome di un bilanciatore del carico.
  3. Nella pagina Dettagli del bilanciatore del carico, fai clic su Modifica per il bilanciatore del carico selezionato.
  4. Seleziona Regole host e percorso.
  5. Nel campo Percorsi di una mappatura degli URL esistente, fai clic sulla "x" sul nome del matcher di percorso.
  6. 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 il comando 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:

  1. Se non ti trovi già nella pagina Regole host e percorso, vai alla pagina Bilanciamento del carico.

    Vai a Bilanciamento del carico

  2. Fai clic sul nome di un bilanciatore del carico.
  3. Nella pagina Dettagli del bilanciatore del carico, fai clic su Modifica per il bilanciatore del carico selezionato.
  4. Seleziona Regole host e percorso.
  5. Nel campo Host per una mappatura URL esistente, fai clic sulla "x" accanto al nome dell'host.
  6. 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 URL denominata my-map, esegui il seguente comando:

gcloud compute url-maps remove-host-rule my-map --host altostrat.com

Guide alla gestione del traffico

Non tutte le funzionalità della mappa degli URL sono disponibili per tutti i prodotti. Le mappe URL vengono utilizzate con i bilanciatori del carico per supportare diverse funzionalità avanzate di gestione del traffico, non tutte supportate dal bilanciatore del carico delle applicazioni classico.

Utilizza la seguente tabella per scoprire le funzionalità della mappa degli URL per la gestione delle opere.

Prodotto Funzionalità della mappa degli URL e guide alla gestione del traffico
Bilanciatore del carico delle applicazioni esterno globale Funzionalità del bilanciatore del carico: routing e gestione del traffico

Panoramica della gestione del traffico

Configurazione della gestione del traffico

Configurazione di un reindirizzamento URL

Configurazione del reindirizzamento da HTTP a HTTPS

Nome host e percorso

Richieste di routing

Cookie

Bilanciatore del carico delle applicazioni classico Funzionalità del bilanciatore del carico: routing e gestione del traffico

Panoramica della gestione del traffico

Configurazione di un reindirizzamento URL

Configurazione del reindirizzamento da HTTP a HTTPS

Nome host e percorso

Routing basato su parametri di query e intestazioni

Bilanciatore del carico delle applicazioni esterno regionale Funzionalità del bilanciatore del carico: routing e gestione del traffico

Panoramica della gestione del traffico

Configurazione della gestione del traffico

Configurazione di un reindirizzamento URL

Configurazione del reindirizzamento da HTTP a HTTPS

Nome host e percorso

Richieste di routing

Cookie

Bilanciatore del carico delle applicazioni interno Funzionalità del bilanciatore del carico: routing e gestione del traffico

Panoramica della gestione del traffico

Configurazione della gestione del traffico

Configurazione dei reindirizzamenti URL

Configurazione dei reindirizzamenti da HTTP a HTTPS

Cookie

Nome host e percorso

Cloud Service Mesh Funzionalità di Cloud Service Mesh: routing e gestione del traffico

Panoramica della gestione avanzata del traffico

Configurazione della gestione avanzata del traffico

API e riferimento per gcloud CLI

Oltre alla console Google Cloud , puoi utilizzare l'API e gcloud CLI per creare mappe URL.

API

Per le descrizioni delle proprietà e dei metodi disponibili 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