Mapeamento de domínios personalizados

Pode usar um domínio personalizado em vez do endereço predefinido que o App Engine fornece para a sua app.

Para usar um domínio personalizado, mapeie o domínio para a sua app e, em seguida, atualize os registos de DNS. Pode mapear um domínio simples, como example.com, ou um subdomínio, como subdomain.example.com. Também pode usar carateres universais para mapear subdomínios.

Por predefinição, quando mapeia um domínio para a sua app, o App Engine emite um certificado gerido para SSL para ligações HTTPS. Para mais informações sobre a utilização de SSL com o seu domínio personalizado, incluindo como utilizar os seus próprios certificados SSL, consulte o artigo Proteger os seus domínios personalizados com SSL.

A utilização de domínios personalizados pode adicionar uma latência percetível às respostas que o App Engine envia aos utilizadores da sua app em algumas regiões. As regiões são as seguintes:

  • us-west2
  • us-east4
  • northamerica-northeast1
  • southamerica-east1
  • europe-west2
  • europe-west3
  • asia-south1
  • asia-northeast1
  • austrália-sudeste1

Os domínios personalizados do App Engine usam um conjunto de endereços IP partilhados para todas as aplicações. Se quiser usar um endereço IP que só seja mapeado para o seu domínio, deve configurar um equilibrador de carga com o App Engine. Isto pode mitigar um problema de ocultação de domínio em que um pedido à aplicação A no certificado SNI pode ser encaminhado para a aplicação B no cabeçalho HTTP Host.

Antes de começar

  • Se não tiver um domínio, compre um. Pode usar qualquer entidade de registo de nomes de domínio.

  • Para adicionar ou editar um mapeamento de domínio personalizado, a sua conta tem de ter a função de administrador do App Engine (roles/appengine.appAdmin) ou uma função personalizada que contenha a autorização appengine.applications.get.

  • Se usar o Cloud Load Balancing e o grupo de pontos finais de rede (NEGs) sem servidor para encaminhar tráfego para a sua app do App Engine, recomendamos que mapeie o seu domínio personalizado para o equilibrador de carga em vez de diretamente para a sua app e use certificados SSL geridos pela Google criados para o equilibrador de carga. Isto elimina a necessidade de gerir certificados SSL separados para cada app sem servidor. Com o Cloud Load Balancing, pode definir políticas SSL que controlam as funcionalidades do SSL que o seu equilibrador de carga negoceia com os clientes.

    Para mais informações, consulte as seguintes páginas:

    Tenha em atenção a seguinte limitação:

    • Recomendamos que use controlos de entrada para que a sua app apenas receba pedidos enviados a partir do equilibrador de carga (e da VPC, se a usar). Caso contrário, os utilizadores podem usar o URL do App Engine da sua app para contornar o balanceador de carga, as políticas de segurança do Cloud Armor, os certificados SSL e as chaves privadas que são transmitidas através do balanceador de carga.

Mapear um domínio personalizado para a sua app

  1. Na Google Cloud consola, aceda ao separador Definições da aplicação da página Definições do App Engine.

    Aceda às Definições de aplicações

    Se não precisar de modificar o Referer da API Google Accounts predefinido, avance para o passo seguinte.

    Se precisar de ativar a autenticação do Google Workspace para o seu domínio personalizado, clique em Editar para modificar o Referer da API Google Accounts. No menu pendente Autenticação Google, selecione Domínio do Google Workspace e, de seguida, adicione o seu domínio, como example.com, no campo vazio.

  2. Na Google Cloud consola, aceda ao separador Domínios personalizados da página Definições do App Engine.

    Aceda a Domínios personalizados

  3. Clique em Adicionar um domínio personalizado.

  4. Se já estiver validado, o domínio aparece na secção Selecione o domínio que quer usar. Selecione o domínio no menu pendente e clique em Continuar.

    Se ainda não validou o seu domínio, faça o seguinte:

    1. Selecione Validar um novo domínio no menu pendente.
    2. Introduza o nome do domínio simples (como "example.com") e clique em Validar.

      Mesmo que queira mapear apenas um subdomínio, como "www.subdomain.example.com", introduza o nome do domínio simples para validar a propriedade.

      Tenha em atenção que os nomes de domínios têm de ter menos de 64 bytes.

    3. Introduza as informações na janela apresentada da Search Console. Para obter ajuda na utilização da Search Console, consulte a Ajuda da Search Console

    4. Depois de concluir os passos na Search Console, regresse à página Adicionar um novo domínio personalizado na Google Cloud consola.

  5. Na secção Encaminhe o seu domínio para [ID do projeto], especifique o domínio e os subdomínios que quer mapear.

    Recomendamos o mapeamento do domínio simples e do subdomínio www. Pode adicionar mais subdomínios se precisar deles.

    Quando tiver adicionado todos os mapeamentos desejados, clique em Guardar mapeamentos.

  6. Clique em Continuar para ver os registos de DNS do seu domínio.

    Pode obter estes registos em qualquer altura no separador Domínios personalizados da página Definições do App Engine.

  7. Inicie sessão no Website da entidade de registo do seu domínio e atualize os registos de DNS com os registos apresentados no passo anterior.

Atualizar os registos de DNS na entidade de registo de domínios

Depois de mapear o seu serviço para um domínio personalizado no App Engine, tem de atualizar os registos de DNS na sua entidade de registo de domínios. Para sua conveniência, o App Engine gera e apresenta os registos DNS que tem de introduzir.

  1. Obtenha as informações do registo DNS para os mapeamentos de domínio:

    Na Google Cloud consola, aceda ao separador Domínios personalizados da página Definições do App Engine. A página apresenta uma lista dos registos de DNS de todos os domínios que mapeou para a sua app.

  2. Inicie sessão na sua conta na entidade de registo de domínio e abra a página de configuração de DNS.

  3. Localize a secção de registos de anfitrião da página de configuração do seu domínio e adicione cada um dos registos de DNS que obteve quando mapeou o seu domínio para a sua app.

    Introduza as seguintes informações nos campos do registo:

    • Tipo de registo: introduza o tipo de registo apresentado no registo DNS criado pela Google para si (A, AAAA ou CNAME).
    • Nome do registo:

      • Nos registos A ou AAAA, introduza @
      • Nos registos CNAME, introduza um nome de domínio de terceiro nível. Por exemplo, introduza www para mapear o subdomínio www.example.com.
    • Tenha em atenção que, se estiver a usar o Cloud DNS, não precisa de adicionar um símbolo @ quando criar um registo A para o seu domínio personalizado principal (example.com). No entanto, pode ter de especificar um símbolo @ para outros fornecedores de DNS, como o GoDaddy.

    • TTL: especifique um TTL consoante as suas necessidades.

    • Dados: introduza os dados do registo (rrdata) apresentados no registo de DNS criado pela Google para si.

      • Nos registos A ou AAAA, os dados do registo são um endereço IP
      • Nos registos CNAME, os dados do registo são um nome de domínio
  4. Guarde as alterações na página de configuração de DNS da conta do seu domínio. Na maioria dos casos, estas alterações demoram apenas alguns minutos a entrar em vigor, mas, em alguns casos, podem demorar até várias horas, consoante o registador e o tempo de vida (TTL) de quaisquer registos DNS anteriores do seu domínio. Pode usar uma ferramenta dig, como esta versão online, para confirmar que os registos DNS foram atualizados com êxito.dig

  5. Teste o sucesso navegando para o seu serviço no novo URL, por exemplo, https://www.example.com. Tenha em atenção que a emissão do certificado SSL automático pode demorar vários minutos.

Delegar a propriedade a outros Google Cloud utilizadores ou contas de serviço

Se precisar de delegar a propriedade do seu domínio a outros utilizadores ou contas de serviço, pode adicionar autorização através da página da Search Console. Para ver uma lista de contas de serviço, abra a página Contas de serviço na Google Cloud consola

Para adicionar autorizações através da Search Console:

  1. Abra a validação da Search Console.

  2. Em Propriedades, clique no domínio para o qual quer adicionar um utilizador ou uma conta de serviço.

  3. Aceda a Definições no painel lateral.

  4. Em Definições gerais, clique em Utilizadores e autorizações para encontrar os proprietários do seu domínio.

  5. Clique em Adicionar utilizador e introduza o ID de email do utilizador. Selecione a autorização necessária para conceder ao utilizador. Para ver detalhes sobre as autorizações, consulte o artigo Gerir proprietários, utilizadores e autorizações.

  6. Clique em Adicionar para delegar a propriedade ao utilizador.

Usar subdomínios

Se configurar um mapeamento de subdomínio com caráter universal para o seu domínio personalizado, a sua aplicação publica pedidos para qualquer subdomínio correspondente.

  • Se o utilizador navegar num domínio que corresponda a um nome de versão da aplicação ou a um nome do serviço, a aplicação publica essa versão.
  • Se o utilizador procurar um domínio que corresponda a um nome de serviço, a aplicação fornece esse serviço.
  • Existe um limite de 20 certificados SSL geridos por semana para cada domínio base. Se atingir o limite, o App Engine continua a tentar emitir certificados geridos até que todos os pedidos sejam cumpridos.

Mapeamentos de carateres universais

Pode usar carateres universais para mapear subdomínios em qualquer nível, começando por subdomínios de terceiro nível. Por exemplo, se o seu domínio for example.com e introduzir texto no campo de endereço Web:

  • A introdução de *.example.com mapeia todos os subdomínios de example.com para a sua app.
  • A introdução de *.private.example.com mapeia todos os subdomínios de private.example.com para a sua app.
  • A introdução de *.nichol.sharks.nhl.example.com mapeia todos os subdomínios de nichol.sharks.nhl.example.com para a sua app.
  • A introdução de *.excogitate.system.example.com mapeia todos os subdomínios de excogitate.system.example.com para a sua app.

Pode usar mapeamentos de carateres universais com serviços no App Engine através do ficheiro dispatch.yaml para definir o encaminhamento de pedidos para serviços específicos.

Se usar o Google Workspace com outros subdomínios no seu domínio, como sites e mail, essas associações têm uma prioridade mais elevada e são correspondidas primeiro, antes de ocorrer qualquer associação de caráter universal. Além disso, se tiver outras apps do App Engine mapeadas para outros subdomínios, esses mapeamentos também têm uma prioridade superior a qualquer mapeamento de caráter universal.

Alguns fornecedores de DNS podem não funcionar com o mapeamento de subdomínios com carateres universais. Em particular, um fornecedor de DNS tem de permitir carateres universais em CNAME entradas de anfitriões.

As regras de encaminhamento com carateres universais aplicam-se a URLs que contêm componentes para serviços, versões e instâncias, seguindo as regras de encaminhamento de serviços para o App Engine.

Eliminar domínios personalizados da sua app

Para eliminar um mapeamento de domínio personalizado da sua app, a sua conta tem de ter a função de administrador do App Engine (roles/appengine.appAdmin) ou uma função personalizada que contenha a autorização appengine.applications.update.

Na Google Cloud consola, faça o seguinte:

  1. Aceda ao separador Domínios personalizados da página Definições do App Engine.

    Aceda a Domínios personalizados

  2. Selecione o nome do domínio personalizado e clique em Eliminar.

Em alternativa, pode usar comandos gcloud ou a API Admin para eliminar domínios personalizados.

Resolução de problemas

Se a sua app apresentar erros de autenticação após configurar o domínio personalizado com a autenticação de domínio do Google Workspace, remova o mapeamento do domínio personalizado e repita os passos para mapear um domínio personalizado para a sua app. Certifique-se de que configura a autenticação de domínio do Google Workspace antes de configurar o mapeamento do domínio personalizado no App Engine.

O que se segue?