Este guia mostra como configurar Google Cloud
mapas de URLs. Um mapa de URLs é um conjunto de regras para encaminhar pedidos HTTP(S) recebidos para
serviços de back-end específicos ou contentores de back-end.
Um mapa de URLs mínimo corresponde a todos os caminhos de pedidos recebidos (/*
).
Antes de seguir este guia, familiarize-se com os conceitos do mapa de URLs.
Os mapas de URLs são usados com os seguintes Google Cloud produtos:
- Balanceador de carga de aplicações externo (modosglobal, clássico e regional)
- Balanceador de carga de aplicações interno
Os mapas de URLs usados com balanceadores de carga de aplicações externos globais, balanceadores de carga de aplicações externos regionais, balanceadores de carga de aplicações internos e o Cloud Service Mesh também suportam várias funcionalidades avançadas de gestão de tráfego. Para mais informações, consulte o artigo Conceitos do mapa de URLs: Gestão avançada de tráfego.
Predefinições do mapa de URLs
Os mapas de URLs têm dois valores predefinidos, conforme descrito na tabela seguinte.
Tipo predefinido | Definição | Significado |
---|---|---|
Predefinição do mapa de URLs | gcloud compute url-maps create
|
O serviço de back-end ou o contentor de back-end predefinido especificado é usado se nenhuma das regras de anfitrião ou dos correspondentes de caminho corresponder ao URL recebido. |
Predefinição do localizador de caminhos | gcloud compute url-maps add-path-matcher
|
O serviço de back-end predefinido especificado ou o contentor de back-end é usado
se o caminho do URL corresponder a um matcher de caminho, mas nenhum dos --path-rules especificados corresponder. |
Regras de anfitrião
Uma regra de anfitrião define um conjunto de anfitriões para fazer a correspondência com os pedidos.
Numa regra de anfitrião, o nome do anfitrião tem de ser um nome de domínio totalmente qualificado (FQDN). O nome do anfitrião não pode ser um endereço IPv4 ou IPv6. Por exemplo:
- Funciona:
example.com
- Funciona:
web.example.com
- Funciona:
*.example.com
- Não funciona:
35.244.221.250
Configure mapas de URLs
Um mapa de URLs pode enviar tráfego para serviços de back-end ou contentores de back-end. Os contentores de back-end não são suportados com balanceadores de carga de aplicações externos regionais e balanceadores de carga de aplicações internos.
Consola
Para adicionar um mapa de URLs através da consola Google Cloud , siga os passos seguintes:
- Aceda à página Equilíbrio de carga.
- Clique no Nome de um balanceador de carga.
- Na página Detalhes do equilibrador de carga, clique em Editar para o equilibrador de carga selecionado.
- Selecione Regras de anfitriões e caminhos.
- Clique em Adicionar regra de anfitrião e caminho.
Preencha o campo Anfitrião, o campo Caminhos ou ambos, e selecione um serviço de back-end ou um contentor de back-end.
- Introduza um nome de anfitrião totalmente qualificado, por exemplo,
web.example.com
. - Introduza o caminho, por exemplo,
/video
. - Na página Regras de anfitrião e caminho, no menu Back-ends, selecione um serviço de back-end disponível ou um contentor de back-end.
- Introduza um nome de anfitrião totalmente qualificado, por exemplo,
Procure a marca de verificação azul à esquerda de Regras de anfitrião e caminho e clique no botão Atualizar.
gcloud
Para adicionar um mapa de URLs através da Google Cloud CLI, use o 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]
Para balanceadores de carga de aplicações externos regionais e balanceadores de carga de aplicações internos, certifique-se de que inclui a flag --region
quando criar o mapa de URLs.
Para criar um correspondente de caminho, use o 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"]
Este comando requer um serviço de back-end predefinido ou um contentor de back-end para o qual
possa enviar pedidos não correspondentes. A flag --path-rules
define mapeamentos
entre caminhos de pedidos e serviços de back-end ou contentores. O exemplo seguinte
encaminha os caminhos de pedido /video/
e /video/*
para o serviço de back-end video-service
:
--path-rules="/video=video-service,/video/*=video-service"
Para criar uma regra de anfitrião, use o 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
Por exemplo, o valor --hosts
corresponde a pedidos em relação a www.example.com
e a qualquer subdomínio de altostrat.com
:
--hosts=[*.altostrat.com,www.example.com]
Para alterar o serviço predefinido ou o contentor predefinido de um mapa de URLs, 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 ...]
Terraform
Para criar um mapa de URLs global, use o recurso google_compute_url_map.
Para criar um mapa de URLs regional, use o recurso google_compute_region_url_map.
Valide a configuração do mapa de URLs
Antes de implementar um mapa de URLs, certifique-se de que valida a configuração do mapa de URLs para garantir que o mapa está a encaminhar pedidos para os back-ends adequados conforme previsto. Pode fazê-lo adicionando testes à configuração do mapa de URLs. Pode experimentar diferentes regras de mapeamento de URLs e executar quantos testes forem necessários para ter a certeza de que o mapa encaminha o tráfego adequadamente quando é implementado. Além disso, se forem necessárias alterações às regras no futuro, pode testá-las antes de implementar a nova configuração.
Use o comando gcloud compute url-maps
validate
para validar a configuração do mapa de URLs. Este comando apenas testa a configuração fornecida.
Independentemente de os testes serem aprovados ou reprovados, não são guardadas alterações no mapa de URLs implementado. Este comportamento é diferente de outros comandos de mapeamento de URLs (edit
e import
), que também executam os mesmos testes, mas guardam efetivamente a nova configuração se os testes forem aprovados. Quando quiser testar uma nova configuração de encaminhamento sem fazer alterações ao mapa de URLs implementado, use o comando validate
.
O comando validate
permite-lhe testar configurações de rotas avançadas, como
o encaminhamento com base em cabeçalhos e parâmetros de consulta, redirecionamentos de HTTP para HTTPS e reescritas de
URLs.
Consola
Não pode usar a Google Cloud consola para validar a configuração do mapa de URLs.
Em alternativa, use gcloud
ou a API REST.
gcloud
Para validar a configuração do mapa de URLs, use o comando
gcloud compute url-maps validate
.
Para o balanceador de carga de aplicações externo global:
gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE \ --load-balancing-scheme=EXTERNAL_MANAGED \ --global
Para o balanceador de carga de aplicações clássico:
gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE \ --load-balancing-scheme=EXTERNAL \ --global
- PATH_TO_URL_MAP_CONFIG_FILE: substitua por um caminho para o ficheiro que contém a configuração do mapa de URLs para validação.
Valide as alterações ao mapa de URLs de um equilibrador de carga existente
Se tiver um equilibrador de carga existente que precise de alterações ao mapa de URLs, pode testar essas alterações de configuração antes de as publicar.
Exporte o mapa de URLs existente do equilibrador de carga para um ficheiro YAML.
gcloud compute url-maps export URL_MAP_NAME \ --destination PATH_TO_URL_MAP_CONFIG_FILE \ --global
Edite o ficheiro YAML com a nova configuração. Por exemplo, se quiser editar um balanceador de carga de aplicações externo e enviar todos os pedidos com o caminho
/video
para um novo serviço de back-end denominadovideo-backend-service
, pode adicionar testes à configuração do mapa de URLs da seguinte forma:Configuração do mapa de URLs existente com um único
web-backend-service
predefinido:kind: compute#urlMap name: URL_MAP_NAME defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service
Configuração do mapa de URLs editada com o matcher de caminhos adicionado e testes para o serviço de back-end
web-backend-service
predefinido e o novovideo-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
Valide a nova configuração.
gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE
Se todos os testes forem aprovados com êxito, deve ver uma mensagem de êxito, como:
Successfully validated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/URL_MAP_CONFIG_FILE_NAME]
Se os testes falharem, é apresentada uma mensagem de erro. Faça as correções necessárias ao ficheiro de configuração do mapa de URLs e tente validar novamente.
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'.
Depois de saber que a nova configuração funciona e não afeta a configuração existente, pode importá-la para o mapa de URLs. Tenha em atenção que este passo também implementa o mapa de URLs com a nova configuração.
gcloud compute url-maps import URL_MAP_NAME \ --source PATH_TO_URL_MAP_CONFIG_FILE \ --global
Adicione testes a um mapa de URLs
Pode adicionar testes de configuração a um mapa de URLs para garantir que o mapa de URLs encaminha pedidos para os serviços de back-end ou os contentores de back-end conforme previsto.
Esta secção descreve como adicionar testes a um mapa de URLs que já foi implementado. Se quiser testar novas alterações a um mapa de URLs sem implementar realmente o mapa, consulte o artigo Valide a configuração do mapa de URLs.
Quando edita o mapa de URLs, os testes são executados e é apresentada uma mensagem de erro se um teste falhar:
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'.
A adição de testes a mapas de URLs é opcional.
Consola
Para executar testes a partir da Google Cloud consola:
- Aceda à página Equilíbrio de carga.
- Clique no Nome de um balanceador de carga.
- Na página Detalhes do equilibrador de carga, clique em Editar para o equilibrador de carga selecionado.
- Clique em Regras de encaminhamento. Para um balanceador de carga de aplicações clássico, trata-se de regras de anfitriões e caminhos.
- Clique em Mostrar testes de configuração.
- Clique em Adicionar teste de configuração. Adicione os seguintes URLs de teste e back-ends:
- Test host and path 1
example.com
e Backendwww-service.
- Testar anfitrião e caminho 2
example.net
e Back-endwww-service.
- Test host and path 3
example.net/web
e Backendwww-service.
- Test host and path 4
example.com/videos
e Backendvideo-service.
- Test host and path 5
example.com/videos/browse
e Backendvideo-service.
- Test host and path 6
example.net/static
e Backendstatic-service.
- Test host and path 7
example.net/static/images
e Backendstatic-service.
- Test host and path 1
- Procure a marca de verificação azul à esquerda de Regras de encaminhamento e clique no botão Atualizar. Para um balanceador de carga de aplicações clássico, procure a marca de verificação azul junto a Regras de anfitrião e caminho.
gcloud
Para adicionar testes ao seu mapa de URLs através da Google Cloud CLI, use o comando
gcloud compute url-maps edit
:
gcloud compute url-maps edit URL_MAP_NAME
Esta ação inicia um editor de texto. Para balanceadores de carga de aplicações externos, os testes têm de usar o seguinte 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
Tenha em atenção que, se não especificar um anfitrião numa regra de anfitrião, os URLs de todos os anfitriões (tanto example.com como example.net) podem corresponder. Se tiver regras de anfitrião, tem de criar regras que correspondam a example.com e example.net.
Liste mapas de URLs
Consola
Não pode listar todos os seus mapas de URLs na Google Cloud consola.
gcloud
Para apresentar uma lista de mapeamentos de URLs através da CLI Google Cloud,
use o comando url-maps list
.
gcloud compute url-maps list
Obtenha informações sobre um mapa de URLs
Consola
Para obter informações sobre um mapa de URLs, siga estes passos:
- Aceda à página Equilíbrio de carga.
- Clique no Nome de um balanceador de carga.
- Na página Detalhes do equilibrador de carga, clique em Editar para o equilibrador de carga selecionado.
- Veja as Regras de anfitriões e caminhos.
gcloud
Para obter informações sobre um único mapa de URLs através da Google Cloud CLI,
use o comando url-maps describe
.
gcloud compute url-maps describe URL_MAP_NAME
Elimine um mapa de URLs
Só pode eliminar um mapa de URLs depois de eliminar todos os proxies de destino que fazem referência ao mesmo. Para mais informações, consulte o artigo Eliminar um proxy de destino.
Consola
Para eliminar um mapa de URLs, siga estes passos:
- Aceda à página Equilíbrio de carga.
- Clique no Nome de um balanceador de carga.
- Na página Detalhes do equilibrador de carga, clique em Editar para o equilibrador de carga selecionado.
- Na página Detalhes do equilibrador de carga, veja as Regras de anfitrião e caminho.
- Clique no "X" à direita de um mapa de URLs para o eliminar. O mapa de URLs desaparece.
- Procure a marca de verificação azul à esquerda de Regras de anfitrião e caminho e clique no botão Atualizar.
gcloud
Para eliminar um mapa de URLs através da Google Cloud CLI, use o comando
url-maps delete
.
Antes de poder eliminar um mapa de URLs, tem de eliminar todos os proxies HTTP de destino que referenciam o mapa de URLs.
gcloud compute url-maps delete URL_MAP_NAME [--quiet]
Elimine um Path Matcher
Consola
Para eliminar um correspondente de caminho, siga estes passos:
- Aceda à página Equilíbrio de carga.
- Clique no Nome de um balanceador de carga.
- Na página Detalhes do equilibrador de carga, clique em Editar para o equilibrador de carga selecionado.
- Selecione Regras de anfitriões e caminhos.
- No campo Caminhos de um mapa de URLs existente, clique no "x" no nome do correspondente de caminhos.
- Procure a marca de verificação azul à esquerda de Regras de anfitrião e caminho e clique no botão Atualizar.
gcloud
Para eliminar um correspondente de caminho, use o comando
gcloud compute url-maps remove-path-matcher
:
gcloud compute url-maps remove-path-matcher URL_MAP_NAME \ [--path-matcher-name PATH_MATCHER]
Elimine uma regra de anfitrião
Consola
Para eliminar uma regra de anfitrião, siga estes passos:
- Se ainda não estiver na página Regras de anfitrião e caminho, aceda à página Equilíbrio de carga.
- Clique no Nome de um balanceador de carga.
- Na página Detalhes do equilibrador de carga, clique em Editar para o equilibrador de carga selecionado.
- Selecione Regras de anfitriões e caminhos.
- No campo Anfitriões de um mapeamento de URL existente, clique no "x" no nome do anfitrião.
- Procure a marca de verificação azul à esquerda de Regras de anfitrião e caminho e clique no botão Atualizar.
gcloud
Para eliminar uma regra de anfitrião do mapa de URLs, use o comando
gcloud compute url-maps remove-host-rule
:
gcloud compute url-maps remove-host-rule URL_MAP_NAME --host=HOST
Por exemplo, para remover uma regra de anfitrião que contenha o anfitrião altostrat.com
de um mapa de URLs denominado my-map
, executaria o seguinte comando:
gcloud compute url-maps remove-host-rule my-map --host altostrat.com
Guias de gestão de tráfego
Nem todas as funcionalidades do mapa de URLs estão disponíveis para todos os produtos. Os mapas de URLs são usados com balanceadores de carga para suportar várias funcionalidades avançadas de gestão de tráfego, nem todas as quais são suportadas no balanceador de carga da aplicação clássico.
Use a tabela seguinte para saber mais sobre as funcionalidades do mapa de URLs para gestão de obras.
Referência da API e da CLI gcloud
Além da Google Cloud consola, pode usar a API e a CLI gcloud para criar mapas de URLs.
API
Para ver descrições das propriedades e dos métodos disponíveis quando trabalha com mapas de URLs através da API REST, consulte o seguinte:
Produto | Documentação da API |
---|---|
Balanceador de carga de aplicações externo | urlMaps |
Balanceador de carga de aplicações interno | regionUrlMaps |
Cloud Service Mesh | urlMaps |
CLI gcloud
Para a CLI do Google Cloud na CLI do Google Cloud, consulte o seguinte:
- Global:
--global
- Regional:
--region=[REGION]
Para uma gestão avançada do tráfego, use ficheiros YAML e importe-os com o comando
gcloud compute url-maps import
.
O que se segue?
- Consulte o artigo Vista geral dos mapas de URLs para ver informações sobre como funcionam os mapas de URLs.
- Consulte a vista geral do balanceador de carga de aplicações externo para obter informações sobre o funcionamento dos mapas de URLs em balanceadores de carga de aplicações externos.
- Consulte a vista geral do balanceador de carga de aplicações interno para obter informações sobre como os mapas de URLs funcionam nos balanceadores de carga de aplicações internos.