IBM Cloud Docs
Configurando mapeamentos de domínio personalizados para o seu app

Configurando mapeamentos de domínio personalizados para o seu app

Os mapeamentos de domínio fornecem a rota URL para seus aplicativos Code Engine em um projeto. Com o site Code Engine, esses mapeamentos são criados automaticamente, por padrão, sempre que você implanta um aplicativo. No entanto, você pode mapear seu próprio domínio personalizado para um aplicativo Code Engine para rotear solicitações do seu domínio personalizado URL para o seu aplicativo a partir do console Code Engine ou da CLI.

Se você deseja destinar o seu aplicativo com um domínio que possui, você pode usar um mapeamento de domínio personalizado. Quando você configura um mapeamento de domínio personalizado em Code Engine, você define um mapeamento 1-to-1 entre seu nome de domínio completo (FQDN) e um aplicativo Code Engine em seu projeto.

Um mapeamento de domínio personalizado deve apontar para apenas um aplicativo. No entanto, é possível configurar vários mapeamentos de domínio para uma única aplicação.

É possível criar no máximo 80 mapeamentos de domínio customizados por projeto. Consulte Cotas do Projeto

Quando você cria um mapeamento de domínio personalizado em Code Engine, o nome de domínio que você usa no mapeamento deve ser exclusivo na região.

Para criar e configurar mapeamentos de domínio customizado, conclua estas etapas:

  1. Revise as Considerações antes de usar mapeamentos de domínio personalizados em Code Engine.
  2. Obtenha seu domínio customizado por meio de um registrador de domínio (fora do Code Engine.
  3. Configure um mapeamento de domínio customizado no Code Engine para seu Aplicativo (do console ou da CLI do Code Engine).
  4. Conclua a configuração de domínio customizado com seu registrador de domínio (fora do Code Engine).

Suponha que você deseje criar um mapeamento de domínio personalizado para www.example.com e shop.example.com. Neste caso, você deve criar um mapeamento de domínio personalizado para cada domínio ou subdomínio exclusivo. No entanto, será possível reutilizar o mesmo segredo de TLS para diversos mapeamentos de domínios customizados se os certificados do segredo de TLS incluírem o domínio especificado no mapeamento de domínio customizado. Isso significa que é possível mapear um segredo do TLS para vários domínios, como www.example.com e shop.example.com, ou para um domínio curinga, como *.example.com

Configurando mapeamentos de domínio personalizados a partir do console

É possível criar um mapeamento de domínio customizado com seu aplicativo Code Engine para seu nome de domínio registrado com o console Code Engine.

Neste cenário, vamos criar um mapeamento de domínio personalizado para um aplicativo com um segredo TLS. Por exemplo, crie um mapeamento de domínio personalizado para mapear o domínio www.example.com para o aplicativo myapp.

Antes de Iniciar

  1. Na página Code Engine Projects, acesse seu projeto.

  2. A partir da página Visão Geral, clique em mapeamentos de Domínio.

  3. A partir da página de mapeamentos de Domínio, clique em Criar para criar seu mapeamento.

  4. A partir da página Criar uma página de mapeamento de domínio, especifique o segredo TLS para usar com este mapeamento de domínio. Code Engine valida se o certificado é assinado por um CA confiável, e se o certificado corresponde ao nome de domínio personalizado e chave privada fornecido.

    Para criar um novo segredo de TLS,

    1. Clique em Criar.
    2. Inclua o certificado TLS, incluindo todos os certificados intermediários, que estão associados ao seu domínio. Se o certificado for fornecido a você como arquivos separados, concatene o conteúdo dos arquivos. É possível fornecer essas informações em um arquivo
    3. Adicione a chave privada que corresponde ao seu certificado. É possível fornecer essas informações em um arquivo

    Formato de exemplo para uma cadeia de certificados

    -----BEGIN CERTIFICATE-----
    ...certificate...
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    ...intermediate-certificate...
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    ...intermediate-certificate...
    -----END CERTIFICATE-----
    

    Ou, para usar um segredo de TLS existente,

    1. Clique em Selecionar.
    2. Selecione o segredo existente a partir da lista que você deseja utilizar.
  5. Especificar o nome de domínio e o componente de destino.

    • Especifique o nome de domínio totalmente qualificado para o seu nome de domínio personalizado; por exemplo, www.example.com.
    • Selecione um aplicativo de destino existente; por exemplo, myapp. Para este exemplo, o aplicativo myapp usa a imagem de amostra icr.io/codeengine/helloworld. Para obter mais informações sobre o código que é usado para este exemplo, consulte helloworld.
    • Observe o campo destino CNAME. Este valor é a entrada CNAME que é necessária quando você completa a configuração do domínio personalizado com o seu secretário de domínio para que o tráfego que destina seu domínio personalizado seja roteado para o aplicativo especificado.
  6. Clique em Criar para criar o mapeamento de domínio personalizado.

Agora você tem um mapeamento de domínio que é criado em Code Engine. No entanto, os pedidos que são enviados para o seu aplicativo não são (ainda) encaminhados para o seu domínio personalizado. Em seguida, deve-se concluir a configuração de domínio customizado com seu registrador de domínio (fora do Code Engine).

Configurando Mapeamentos de Domínio Customizados com a CLI

Para criar um mapeamento de domínio customizado com a CLI, use o comando domainmapping create Esse comando requer um nome completo do domínio (FQDN), como www.example.com, um aplicativo de destino e um segredo do TLS. Para obter uma lista completa das opções, consulte o comando ibmcloud ce domainmapping create comando.

Antes de Iniciar

Quando seu nome de domínio for registrado, você tiver um certificado TLS assinado e sua chave privada correspondente para esse domínio e tiver um aplicativo Code Engine existente, estará pronto para incluir um mapeamento de domínio customizado nesse aplicativo. É possível usar o comando domainmapping create na CLI para criar um mapeamento de domínio customizado com seu aplicativo Code Engine.

  1. Crie um segredo TLS com o certificado TLS assinado e a chave privada. Neste exemplo, o arquivo mycert.txt contém o certificado TLS, incluindo todos os certificados intermediários, que estão associados ao seu domínio Se o certificado for fornecido a você como arquivos separados, concatene o conteúdo dos arquivos. O arquivo myprivatekey.txt contém a chave privada correspondente que corresponde à cadeia de certificados..

    ibmcloud ce secret create --name mytlssecret --format tls --cert-chain-file  mycertchain.txt --private-key-file myprivatekey.txt
    

    Saída de exemplo

    Creating tls secret 'mytlssecret'...
    OK
    
  2. Crie o mapeamento de domínio customizado entre o aplicativo Code Engine myapp e o domínio customizado, www.example.com Use o segredo do TLS criado na etapa anterior.

    ibmcloud ce domainmapping create --domain-name www.example.com --target myapp --tls-secret mytlssecret
    

    Saída de exemplo

    OK
    Domain mapping successfully created.
    

A tabela a seguir resume as opções que são usadas com o comando domainmapping create neste exemplo. Para obter mais informações sobre o comando e suas opções, consulte o comando ibmcloud ce domainmapping create comando.

Descrição do comando
Opção Descrição
--domain-name O nome do mapeamento de domínio personalizado. Especifique o nome de seu domínio customizado, como www.example.com. Este valor é necessário.
--target O nome do aplicativo de destino Code Engine. Este valor é necessário.
--tls-secret O segredo TLS para o mapeamento de domínio. Este valor é necessário.

Agora você tem um mapeamento de domínio customizado que é criado no Code Engine. No entanto, os pedidos que são enviados para o seu aplicativo não são (ainda) encaminhados para o seu domínio personalizado. Em seguida, conclua a configuração de domínio customizado com seu registro de domínio (fora do Code Engine).

Concluindo a configuração do domínio personalizado com o seu secretário de domínio

Após o Code Engine mapeamento de domínio personalizado é criado, um registro CNAME que corresponde ao nome de domínio totalmente qualificado deve ser adicionado às configurações de DNS do domínio personalizado. Você pode encontrar as configurações de DNS nas configurações de configuração do registro de domínio correspondente. Conclua esta etapa para que o tráfego que direciona seu domínio customizado seja roteado para a função Code Engine conforme definido em seu mapeamento de domínio customizado Code Engine.

Testando seu domínio personalizado

Depois de concluir a configuração de domínio customizado com seu registrador de domínio e as atualizações de registro CNAME forem publicadas, será possível testar o aplicativo com o mapeamento de domínio customizado

Com um navegador, ligue para o aplicativo visando o domínio personalizado usando curl.

curl -v -X GET https://www.example.com

Saída de exemplo

Hello World from:
     ___  __  ____  ____
    / __)/  \(    \(  __)
   ( (__(  O )) D ( ) _)
    \___)\__/(____/(____)
 ____  __ _   ___  __  __ _  ____
(  __)(  ( \ / __)(  )(  ( \(  __)
 ) _) /    /( (_ \ )( /    / ) _)
(____)\_)__) \___/(__)\_)__)(____)
Some Env Vars:
--------------
CE_API_BASE_URL=https://api.private.us-south.codeengine.cloud.ibm.com
CE_APP=myapp
CE_DOMAIN=us-south.codeengine.appdomain.cloud
CE_PROJECT_ID=abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
CE_REGION=us-south
CE_SUBDOMAIN=abcdabcdab
HOME=/root
HOSTNAME=myapp-00001-deployment-6db6d89dc7-k6qc7
K_REVISION=myapp-00001
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PORT=8080
PWD=/
SHLVL=1

A saída da chamada para o domínio personalizado é mapeada para o aplicativo myapp, que usa a imagem de amostra icr.io/codeengine/helloworld.

Para obter mais informações sobre mapeamentos de domínios no Code Engine, consulte Trabalhando com mapeamentos de domínios customizados.