IBM Cloud Docs
Configuration de mappages de domaines personnalisés pour votre application

Configuration de mappages de domaines personnalisés pour votre application

Les mappages de domaines constituent la voie d'accès URL à vos applications Code Engine au sein d'un projet. Avec Code Engine, ces mappings sont automatiquement créés, par défaut, lorsque vous déployez une application. Cependant, vous pouvez associer votre propre domaine personnalisé à une application Code Engine afin d'acheminer les requêtes de votre domaine personnalisé URL vers votre application à partir de la console Code Engine ou de l'interface CLI.

Si vous souhaitez cibler votre application avec un domaine que vous possédez, vous pouvez utiliser un mappage de domaine personnalisé. Lorsque vous définissez un mappage de domaine personnalisé dans Code Engine, vous définissez un mappage 1-to-1 entre votre nom de domaine complet et une application Code Engine dans votre projet.

Un mappage de domaine personnalisé ne doit pointer que vers une seule application. Toutefois, vous pouvez configurer plusieurs mappages de domaine sur une seule application.

Vous pouvez créer au maximum 80 mappages de domaine personnalisés par projet. Voir Quotas de projet.

Lorsque vous créez un mappage de domaine personnalisé dans Code Engine, le nom de domaine que vous utilisez dans le mappage doit être unique dans la région.

Pour créer et configurer des mappages de domaine personnalisés, procédez comme suit:

  1. Consultez les considérations à prendre en compte avant d'utiliser des mappages de domaine personnalisés dans Code Engine.
  2. Procurez-vous votre domaine personnalisé auprès d'un registre de domaine (en dehors de Code Engine).
  3. Configurez un mappage de domaine personnalisé dans Code Engine pour votre application (depuis la console ou l'interface de ligne de commande Code Engine).
  4. Terminez la configuration de domaine personnalisé avec votre registre de domaine (en dehors de Code Engine).

Supposons que vous souhaitiez créer un mappage de domaine personnalisé pour www.example.com et shop.example.com. Dans ce cas, vous devez créer un mappage de domaine personnalisé pour chaque domaine ou sous-domaine unique. Toutefois, vous pouvez réutiliser le même secret TLS pour plusieurs mappages de domaine personnalisés si les certificats du secret TLS incluent le domaine spécifié dans le mappage de domaine personnalisé. Cela signifie que vous pouvez mapper un secret TLS à plusieurs domaines, tels que www.example.com et shop.example.com, ou à un domaine générique, tel que *.example.com.

Configuration des mappages de domaines personnalisés à partir de la console

Vous pouvez créer un mappage de domaine personnalisé avec votre application Code Engine à votre nom de domaine enregistré à l'aide de la console Code Engine.

Dans ce scénario, créons un mappage de domaine personnalisé à une application avec un secret TLS. Par exemple, créez un mappage de domaine personnalisé pour mapper le domaine www.example.com à l'application myapp.

Avant de commencer

  1. Sur la page Code Engine Projects, accédez à votre projet.

  2. Dans la page Présentation, cliquez sur Mappages de domaine.

  3. Dans la page Mappages de domaine, cliquez sur Créer pour créer votre mappage.

  4. Dans la page Créer un mappage de domaine, indiquez le secret TLS à utiliser avec ce mappage de domaine. Code Engine vérifie si le certificat est signé par une autorité de certification digne de confiance et s'il correspond au nom de domaine personnalisé et à la clé privée fournis.

    Pour créer un nouveau secret TLS,

    1. Cliquez sur Créer.
    2. Ajoutez le certificat TLS, y compris tous les certificats intermédiaires, qui sont associés à votre domaine. Si le certificat vous est fourni en tant que fichiers distincts, concaténez le contenu des fichiers. Vous pouvez fournir ces informations dans un fichier.
    3. Ajoutez la clé privée correspondant à votre certificat. Vous pouvez fournir ces informations dans un fichier.

    Exemple de format pour une chaîne de certificats

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

    Ou, pour utiliser un secret TLS existant,

    1. Cliquez sur Sélectionner.
    2. Sélectionnez le secret existant dans la liste que vous souhaitez utiliser.
  5. Indiquez le nom de domaine et le composant cible.

    • Indiquez le nom de domaine complet de votre nom de domaine personnalisé ; par exemple, www.example.com.
    • Sélectionnez une application cible existante ; par exemple, myapp. Pour cet exemple, l'application myapp utilise l'exemple d'image icr.io/codeengine/helloworld. Pour plus d'informations sur le code utilisé pour cet exemple, voir helloworld.
    • Notez la zone CNAME target. Cette valeur est l'entrée CNAME qui est requise lorsque vous effectuez la configuration de domaine personnalisé avec votre registre de domaine afin que le trafic qui cible votre domaine personnalisé soit acheminé vers l'application spécifiée.
  6. Cliquez sur Créer pour créer le mappage de domaine personnalisé.

Vous disposez maintenant d'un mappage de domaine créé dans Code Engine. Toutefois, les demandes envoyées à votre application ne sont pas (encore) acheminées vers votre domaine personnalisé. Ensuite, vous devez terminer la configuration de domaine personnalisé avec votre registre de domaine (en dehors de Code Engine).

Configuration de mappages de domaines personnalisés avec l'interface de ligne de commande

Pour créer un mappage de domaine personnalisé à l'aide de l'interface de ligne de commande, utilisez la commande domainmapping create. Cette commande requiert un nom de domaine complet (FQDN), tel que www.example.com, une application cible et un secret TLS. Pour une liste complète des options, voir la commande ibmcloud ce domainmapping create pour obtenir la liste complète des options.

Avant de commencer

Lorsque votre nom de domaine est enregistré, que vous disposez d'un certificat TLS signé et de sa clé privée correspondante pour ce domaine et que vous disposez d'une application Code Engine existante, vous êtes prêt à ajouter un mappage de domaine personnalisé à cette application. Vous pouvez utiliser la commande domainmapping create dans l'interface de ligne de commande pour créer un mappage de domaine personnalisé avec votre application Code Engine.

  1. Créez un secret TLS avec le certificat TLS signé et la clé privée. Dans cet exemple, le fichier mycert.txt contient le certificat TLS, y compris tous les certificats intermédiaires, qui sont associés à votre domaine. Si le certificat vous est fourni en tant que fichiers distincts, concaténez le contenu des fichiers. Le fichier myprivatekey.txt contient la clé privée correspondante qui correspond à la chaîne de certificats.

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

    Exemple de sortie

    Creating tls secret 'mytlssecret'...
    OK
    
  2. Créez le mappage de domaine personnalisé entre l'application Code Engine myapp et le domaine personnalisé, www.example.com. Utilisez le secret TLS que vous avez créé à l'étape précédente.

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

    Exemple de sortie

    OK
    Domain mapping successfully created.
    

Le tableau suivant résume les options utilisées avec la commande domainmapping create dans cet exemple. Pour plus d'informations sur la commande et ses options, voir la commande ibmcloud ce domainmapping create pour plus d'informations.

Description de la commande
Option Description
--domain-name Le nom du mappage de domaine personnalisé. Indiquez le nom de votre domaine personnalisé, tel que www.example.com. Cette valeur est obligatoire.
--target Le nom de l'application cible Code Engine. Cette valeur est obligatoire.
--tls-secret Secret TLS pour le mappage de domaine. Cette valeur est obligatoire.

Vous disposez maintenant d'un mappage de domaine personnalisé qui est créé dans Code Engine. Toutefois, les demandes envoyées à votre application ne sont pas (encore) acheminées vers votre domaine personnalisé. Ensuite, terminez la configuration de domaine personnalisé avec votre registre de domaine (en dehors de Code Engine).

Exécution de la configuration de domaine personnalisée avec votre registre de domaine

Une fois le mappage de domaine personnalisé Code Engine créé, un enregistrement CNAME correspondant au nom de domaine complet doit être ajouté aux paramètres DNS du domaine personnalisé. Vous trouverez les paramètres DNS dans les paramètres de configuration du registre de domaine correspondant. Effectuez cette étape pour que le trafic qui cible votre domaine personnalisé soit acheminé vers la fonction Code Engine telle que définie dans votre mappage de domaine personnalisé Code Engine.

Test de votre domaine personnalisé

Une fois que vous avez terminé la configuration de domaine personnalisé avec votre registre de domaine et que les mises à jour d'enregistrement CNAME sont publiées, vous pouvez tester l'application avec le mappage de domaine personnalisé.

Avec un navigateur, appelez l'application en ciblant le domaine personnalisé à l'aide de curl.

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

Exemple de sortie

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

La sortie de l'appel au domaine personnalisé est mappée à l'application myapp, qui utilise l'exemple d'image icr.io/codeengine/helloworld.

Pour plus d'informations sur les mappages de domaine dans Code Engine, voir Utilisation des mappages de domaine personnalisés.