Como usar mapas de URL

Neste guia, você aprenderá a configurar os mapas de URLs do Google Cloud. Antes de segui-lo, familiarize-se com os conceitos do mapa de URLs.

Os mapas de URL são usados com estes produtos do Google Cloud:

O balanceamento de carga HTTP(S) interno e o Traffic Director são compatíveis com casos de uso de gerenciamento de tráfego avançado. Veja mais informações em:

Como configurar mapas de URL

É possível adicionar serviços de back-end e buckets de back-end a um mapa de URLs.

Os buckets de back-end são compatíveis somente com balanceadores de carga HTTP(S) externos.

Como adicionar um mapa de URL

Console

Para adicionar um mapa de URLs usando o Console do Cloud, execute as etapas a seguir:

  1. Acesse a página "Balanceamento de carga".

    Acessar a página "Balanceamento de carga"

  2. Clique no Nome de um balanceador de carga.
  3. Na tela Detalhes do balanceador de carga, clique no lápis Editar do balanceador de carga selecionado.
  4. Selecione Regras de host e caminho.
  5. Clique em Adicionar host e regra de caminho.
  6. Preencha o campo Host, o campo Caminhos ou ambos e selecione um serviço de back-end ou bucket de back-end.
  7. Procure a marca de seleção azul à esquerda de Regras de host e caminho e clique no botão Atualizar.

gcloud

Para adicionar um mapa de URLs usando a ferramenta de linha de comando gcloud, use o comando url-maps create:

gcloud compute url-maps create URL_MAP \
    (--default-backend-bucket=DEFAULT_BACKEND_BUCKET | --default-service=DEFAULT_SERVICE) \
   [--description DESCRIPTION] \
   [--global | --region=REGION]

Para balanceadores de carga HTTP(S) internos, certifique-se de incluir a sinalização --region ao criar o mapa de URLs.

Um mapa de URLs recém-criado corresponde apenas a um caminho, o padrão (/*). Essa correspondência de caminho padrão é criada automaticamente. Todo tráfego que não coincide com uma correspondência de caminho ou regra de host criadas manualmente é enviado para o serviço de back-end padrão do mapa de URL.

Como adicionar uma correspondência de caminho

Uma correspondência de caminho mapeia os caminhos de solicitação HTTP(S) ou os prefixos de caminho, por exemplo, /video, para os serviços de back-end. Todo o tráfego correspondente ao caminho especificado é processado pelas regras de caminho na correspondência de caminho. Se um caminho corresponde a uma regra de caminho, a solicitação é encaminhada para os back-ends associados a essa regra. Se uma solicitação corresponder às regras no path da correspondência de caminho, ela será encaminhada para o back-end padrão dela.

Console

Para criar uma correspondência de caminho usando o Console do Cloud, execute as etapas a seguir:

  1. Se você ainda não estiver na tela Regras de host e caminho, acesse a página "Balanceamento de carga".

    Acessar a página "Balanceamento de carga"

  2. Clique no Nome de um balanceador de carga.
  3. Na tela Detalhes do balanceador de carga, clique no lápis Editar do balanceador de carga selecionado.
  4. Na tela Regras de host e caminho, clique em Adicionar regra de host e caminho ou clique em um campo de Caminhos atuais.
  5. Digite o caminho para configurar, por exemplo, /video.
  6. Procure a marca de seleção azul à esquerda de Regras de host e caminho e clique no botão Atualizar.

gcloud

Para criar uma correspondência de caminho usando a ferramenta de linha de comando gcloud, use o comando gcloud compute url-maps add-path-matcher:

gcloud compute url-maps add-path-matcher URL_MAP \
   --default-service BACKEND_SERVICE \
   --path-matcher-name PATH_MATCHER \
   [--path-rules PATH=SERVICE]

Esse comando requer um serviço de back-end padrão para enviar solicitações sem correspondência. Se preferir, use a sinalização --path-rules para definir mapeamentos entre caminhos de solicitação e serviços de back-end. O exemplo a seguir roteia os caminhos de solicitação /video/ e /video/* para o serviço de back-end video-service:

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

Os comandos url-maps create e url-maps add-path-matcher têm um parâmetro --default-service. Em create, o serviço padrão é aquele usado se nenhuma das correspondências de caminho coincidir com o URL de entrada. Em add-path-matcher, o serviço padrão é aquele usado se o caminho coincidir com a correspondência de caminho. No entanto, nenhuma das --path-rules corresponde.

Como adicionar uma regra de host

Console

Para criar uma regra de host usando o Console do Cloud, execute as etapas as seguir:

  1. Se você ainda não estiver na tela Regras de host e caminho, acesse a página "Balanceamento de carga".

    Acessar a página "Balanceamento de carga"

  2. Clique no Nome de um balanceador de carga.
  3. Na tela Detalhes do balanceador de carga, clique no lápis Editar do balanceador de carga selecionado.
  4. Na tela Regras de host e caminho, clique em Adicionar regra de host e caminho ou em um dos campos de Hosts atuais.
  5. Insira um Nome de host totalmente qualificado, como web.example.com.
  6. Procure a marca de seleção azul à esquerda de Regras de host e caminho e clique no botão Atualizar.

gcloud

Para criar uma regra de host usando a ferramenta de linha de comando gcloud, use o comando gcloud compute url-maps add-host-rule:

  gcloud compute url-maps add-host-rule URL_MAP \
      --hosts HOSTS --path-matcher-name PATH_MATCHER

A sinalização --hosts define um conjunto de hosts para fazer a correspondência entre as solicitações. Por exemplo, o valor --hosts a seguir corresponde às solicitações para www.example.com e qualquer subdomínio de google.com:

  --hosts *.google.com,www.example.com

Como selecionar um serviço ou bucket de back-end

Console

Para selecionar um serviço ou bucket de back-end para um mapa de URLs, execute as etapas a seguir:

  1. Se você ainda não estiver na tela Regras de host e caminho, acesse a página "Balanceamento de carga".

    Acessar a página "Balanceamento de carga"

  2. Clique no Nome de um balanceador de carga.
  3. Na tela Detalhes do balanceador de carga, clique no lápis Editar do balanceador de carga selecionado.
  4. Na tela Regras de host e caminho, no menu suspenso do campo Back-ends, selecione um serviço ou bucket de back-end disponível.
  5. Procure a marca de seleção azul à esquerda de Regras de host e caminho e clique no botão Atualizar.

gcloud

Para selecionar um serviço ou bucket de back-end usando a ferramenta de linha de comando gcloud, use o 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 ...]

Como testar um mapa de URLs

É possível adicionar testes de configuração a um mapa de URLs para garantir que seu mapa encaminhe as solicitações para os serviços ou buckets de back-end conforme pretendido.

Quando você edita seu mapa de URLs, os testes são executados. Se um teste falhar, uma mensagem de erro será exibida.

  Error: Invalid value for field 'urlMap.tests': ''.
  Test failure: Expect URL '' to map to service '', but actually mapped to ''.

A adição de testes a mapas de URL é opcional.

Console

Para executar testes no Console do Cloud:

  1. Acesse a página "Balanceamento de carga".

    Acessar a página "Balanceamento de carga"

  2. Clique no Nome de um balanceador de carga.
  3. Na tela Detalhes do balanceador de carga, clique no lápis Editar do balanceador de carga selecionado.
  4. Clique em Regras de host e caminho.
  5. Na tela Regras de host e caminho, clique em Mostrar testes de configuração.
  6. Clique em Adicionar teste de configuração. Adicione os seguintes URLs de teste e back-ends:
    • URL de teste example.com e back-end www-service.
    • URL de teste example.net e back-end www-service.
    • URL de teste example.net/web e back-end www-service.
    • URL de teste example.com/videos e back-end video-service.
    • URL de teste example.com/videos/browse e back-end video-service.
    • URL de teste example.net/static e back-end static-service.
    • URL de teste example.net/static/images e back-end static-service.
  7. Procure a marca de seleção azul à esquerda de Regras de host e caminho e clique no botão Atualizar.

gcloud

Para adicionar testes ao seu mapa de URLs usando a ferramenta de linha de comando gcloud, use o comando gcloud compute url-maps edit:

  gcloud compute url-maps edit URL_MAP

Isso inicia um editor de texto. Para balanceadores de carga HTTP(S) externos, seus testes precisam usar o formato a seguir:

    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

Para balanceadores de carga HTTP(S) internos, é preciso que os URLs de serviço apontem para serviços de back-end regionais. Exemplo:

https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/[REGION]/backendServices//www-service

Se você não especificar um host em uma regra de host, os URLs de todos os hosts (example.com e example.net) poderão ser correspondentes. Se você tiver regras de host, precisará criar regras correspondentes a example.com e example.net.

Como listar mapas de URLs

Console

No console, só é possível visualizar o mapa de URLs para um balanceador de carga por vez.

  1. Acesse a página "Balanceamento de carga".

    Acessar a página "Balanceamento de carga"

  2. Clique no Nome de um balanceador de carga.
  3. Na tela Detalhes do balanceador de carga, clique no lápis Editar do balanceador de carga selecionado.
  4. Veja as Regras de host e caminho.

gcloud

Para exibir uma lista de mapas de URLs usando a ferramenta de linha de comando gcloud, use o comando url-maps list.

gcloud compute url-maps list

Como conseguir informações sobre um mapa de URLs

Console

Para ver informações sobre um mapa de URLs, execute estas etapas:

  1. Acesse a página "Balanceamento de carga".

    Acessar a página "Balanceamento de carga"

  2. Clique no Nome de um balanceador de carga.
  3. Na tela Detalhes do balanceador de carga, clique no lápis Editar do balanceador de carga selecionado.
  4. Veja as Regras de host e caminho.

gcloud

Para acessar informações sobre um mapa de URLs usando a ferramenta de linha de comando gcloud, use o comando url-maps describe.

gcloud compute url-maps describe URL_MAP

Como excluir um mapa de URLs

Só é possível excluir um mapa de URLs depois de ter excluído todos os proxies de destino que se referem a ele. Para mais informações, consulte Como excluir um proxy de destino.

Console

Para excluir um mapa de URLs, execute as seguintes etapas:

  1. Acesse a página "Balanceamento de carga".

    Acessar a página "Balanceamento de carga"

  2. Clique no Nome de um balanceador de carga.
  3. Na tela Detalhes do balanceador de carga, clique no lápis Editar do balanceador de carga selecionado.
  4. Na tela Detalhes do balanceador de carga, veja as Regras de host e caminhos.
  5. Clique no "X", à direita de um mapa de URLs para excluí-lo. O mapa de URLs desaparecerá.
  6. Procure a marca de seleção azul à esquerda de Regras de host e caminho e clique no botão Atualizar.

gcloud

Para excluir um mapa de URLs usando a ferramenta de linha de comando gcloud, use o comando url-maps delete. Antes de excluir um mapa de URLs, primeiro é preciso excluir todos os proxies HTTP de destino que fizerem referência ao mapa de URL.

gcloud compute url-maps delete URL_MAP [--quiet]

Como excluir uma correspondência de caminho

Console

Para excluir uma correspondência de caminho, execute as seguintes etapas:

  1. Acesse a página "Balanceamento de carga".

    Acessar a página "Balanceamento de carga"

  2. Clique no Nome de um balanceador de carga.
  3. Na tela Detalhes do balanceador de carga, clique no lápis Editar do balanceador de carga selecionado.
  4. Selecione Regras de host e caminho.
  5. No campo Caminhos, de um mapa de URLs, clique no “x” no nome da correspondência de caminho.
  6. Procure a marca de seleção azul à esquerda de Regras de host e caminho e clique no botão Atualizar.

gcloud

Para excluir uma correspondência de caminho, use o comando gcloud compute url-maps remove-path-matcher:

 gcloud compute url-maps remove-path-matcher URL_MAP \
     [--path-matcher-name PATH_MATCHER]

Como excluir uma regra de host

Console

Para excluir uma regra de host, execute as seguintes etapas:

  1. Se você ainda não estiver na tela Regras de host e caminho, acesse a página "Balanceamento de carga".

    Acessar a página "Balanceamento de carga"

  2. Clique no Nome de um balanceador de carga.
  3. Na tela Detalhes do balanceador de carga, clique no lápis Editar do balanceador de carga selecionado.
  4. Selecione Regras de host e caminho.
  5. No campo Hosts de um mapa de URLs, clique no “x” no nome do host.
  6. Procure a marca de seleção azul à esquerda de Regras de host e caminho e clique no botão Atualizar.

gcloud

Para excluir uma regra de host do seu mapa de URLs, use o comando gcloud compute url-maps remove-host-rule:

 gcloud compute url-maps remove-host-rule NAME --host HOST

Por exemplo, para remover uma regra de host que contém o host google.com de um mapa de URLs denominado my-map, execute o comando a seguir:

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

A seguir