Configurando Mapeamentos de Domínio Customizados para sua Função
Os mapeamentos de domínio fornecem a rota de URL para sua função Code Engine dentro de um projeto. Com Code Engine, esses mapeamentos são criados automaticamente, por padrão, sempre que você implementar sua função. No entanto, é possível mapear seu próprio domínio customizado para uma função Code Engine para rotear solicitações de sua URL customizada para sua função por meio do console ou da CLI do Code Engine.
Se você desejar destinar sua função com um domínio que você possui, será possível usar um mapeamento de domínio customizado Ao configurar um mapeamento de domínio customizado no Code Engine, você define um mapeamento 1-to-1 entre seu nome completo do domínio (FQDN) e uma função Code Engine em seu projeto.
Um mapeamento de domínio customizado deve apontar para apenas um mapeamento No entanto, é possível configurar vários mapeamentos de domínio para uma única função..
É possível criar no máximo 80 mapeamentos de domínio customizados por projeto. Consulte Cotas do Projeto
Ao criar um mapeamento de domínio customizado no Code Engine, o nome de domínio usado no mapeamento deve ser exclusivo na região.
Para criar e configurar mapeamentos de domínio customizado, conclua estas etapas:
- Revise as Considerações antes de usar mapeamentos de domínio customizados no Code Engine.
- Obtenha seu domínio customizado por meio de um registrador de domínio (fora do Code Engine.
- Configure um mapeamento de domínio customizado no Code Engine para seu função (do console ou da CLI do Code Engine).
- Conclua a configuração de domínio customizado com seu registro de domínio. (fora do Code Engine)
Suponha que você deseja criar um mapeamento de domínio customizado para www.example.com e shop.example.com. Nesse caso, deve-se criar um mapeamento de domínio customizado 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 customizado a partir do console
É possível criar um mapeamento de domínio customizado com sua função Code Engine para seu nome de domínio registrado com o console Code Engine.
Antes de Iniciar
- Obter um domínio customizado de um registrador de domínio e seu certificado TLS assinado e chave privada.
- Crie um projeto.
- Criar uma função..
Neste cenário, crie um mapeamento de domínio customizado para uma função com um segredo de TLS. Por exemplo, crie um mapeamento de domínio customizado para mapear o domínio www.example.com para a função myfunction.
-
Na página Code Engine Acesse seu projeto.
-
Na página Visão Geral, clique em Mapeamentos de Domínio.
-
Na página Mapeamentos de domínio, clique em Criar para criar seu mapeamento..
-
Na página Criar um mapeamento de domínio, especifique o segredo do TLS a ser usado com esse mapeamento de domínio Code Engine valida se o certificado é assinado por uma CA confiável e se o certificado corresponde ao nome de domínio customizado fornecido e à chave privada.
Para criar um novo segredo do TLS,
- Clique em Criar.
- Inclua o certificado TLS, incluindo todos os certificados intermediários associados ao seu domínio. Se o certificado for fornecido como arquivos separados, concatene o conteúdo dos arquivos. É possível fornecer essas informações em um arquivo
- 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,
- Clique em Selecionar.
- Selecione o segredo existente na lista que você deseja usar.
-
Especifique o nome do domínio e o componente de destino
- Especifique o nome completo do domínio para o seu nome de domínio customizado; por exemplo,
www.example.com - Selecione uma função de destino existente; por exemplo,
myfunction. Para este exemplo, a funçãomyfunctionusa a imagem de amostraicr.io/codeengine/helloworldPara obter mais informações sobre o código usado para este exemplo, consultehelloworld. - Observe o campo Destino do CNAME Esse valor é a entrada CNAME que é necessária quando você conclui a configuração de domínio customizado com seu registrador de domínio para que o tráfego que direciona seu domínio customizado seja roteado para a função especificada.
- Especifique o nome completo do domínio para o seu nome de domínio customizado; por exemplo,
-
Clique em Criar, para criar o mapeamento de domínio customizado.
Agora você tem um mapeamento de domínio que é criado em Code Engine. No entanto, as solicitações que são enviadas para sua função não são (ainda) roteadas para seu domínio customizado. Em seguida, conclua a configuração de domínio customizado com seu registro de domínio.
Suponha que você deseja criar um mapeamento de domínio customizado para www.example.com e shop.example.com. Nesse caso, deve-se criar um mapeamento de domínio customizado para cada domínio ou subdomínio exclusivo No
entanto, será possível reutilizar o mesmo segredo do TLS para diversos mapeamentos de domínios customizados se o segredo do TLS incluir a certificação para o domínio especificado no mapeamento de domínio customizado. O segredo do TLS pode
conter certificados que são mapeados para vários domínios específicos, como www.example.com e shop.example.com ou um domínio curinga como *.example.com. Observe que não é possível usar o domínio curinga
mais de uma vez em uma região..
Configurando mapeamentos de domínio customizado 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, uma função de destino e um
segredo do TLS. Para obter uma lista completa das opções, consulte o comando ibmcloud ce domainmapping create.
Antes de Iniciar
- Obtenha o nome de domínio registrado
- Obtenha o certificado TLS assinado e a chave privada para o seu domínio customizado
- Configure o seu ambiente da CLI do Code Engine.
- Crie um projeto.
- Criar uma função..
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 uma função Code Engine existente, estará pronto para incluir um mapeamento de domínio customizado.
É possível usar o comando domainmapping create na CLI para criar um mapeamento de domínio customizado com a função Code Engine.
-
Crie um segredo TLS com o certificado TLS assinado e a chave privada. Neste exemplo, o arquivo
mycert.txtcontém o certificado TLS, incluindo todos os certificados intermediários, que estão associados ao seu domínio Se o certificado for fornecido como arquivos separados, concatene o conteúdo dos arquivos. O arquivomyprivatekey.txtconté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.txtSaída de exemplo
Creating tls secret 'mytlssecret'... OK -
Crie o mapeamento de domínio customizado entre a função Code Engine
myfunctione o domínio customizadowww.example.com. Use o segredo do TLS criado na etapa anterior.ibmcloud ce domainmapping create --domain-name www.example.com --target myhellofun --tls-secret mytlssecretSaí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.
| 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 da função Code Engine de destino. Este valor é necessário. |
--tls-secret |
O segredo TLS para o mapeamento de domínio. Este valor é necessário. |
Agora seu mapeamento de domínio customizado é criado em Code Engine. No entanto, as solicitações que são enviadas para sua função não são (ainda) roteadas para seu domínio customizado. Em seguida, deve-se concluir a configuração de domínio customizado com seu registro de domínio.
Concluindo a configuração de domínio customizado com seu registrador de domínio
Após o mapeamento de domínio customizado do Code Engine ser criado, um registro CNAME que corresponde ao nome completo do domínio deve ser incluído nas configurações DNS do domínio customizado. É possível localizar as configurações de DNS na configuração do registrador 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 customizado
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 a função com o mapeamento de domínio customizado
Com um navegador, chame a função visando o domínio customizado com o comando curl.
curl -v -X GET https://www.example.com
A saída da chamada para o domínio customizado é mapeada para a função myhellofun, que usa a imagem de amostra icr.io/codeengine/helloworld