Configuration des mappages de domaines personnalisés pour votre fonction

Les mappages de domaine fournissent la route d'URL à votre fonction Code Engine dans un projet. Avec Code Engine, ces mappages sont créés automatiquement, par défaut, chaque fois que vous déployez votre fonction. Toutefois, vous pouvez mapper votre propre domaine personnalisé à une fonction Code Engine pour acheminer les demandes de votre URL personnalisée vers votre fonction à partir de la console ou de l'interface de ligne de commande Code Engine.

Si vous souhaitez cibler votre fonction 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 fonction Code Engine dans votre projet.

Un mappage de domaine personnalisé ne doit pointer que vers un seul mappage. Toutefois, vous pouvez configurer plusieurs mappages de domaine à une seule fonction.

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 fonction (à partir de la console Code Engine ou de l'interface de ligne de commande).
  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 fonction Code Engine à votre nom de domaine enregistré à l'aide de la console Code Engine.

Avant de commencer

Dans ce scénario, créez un mappage de domaine personnalisé à une fonction avec un secret TLS. Par exemple, créez un mappage de domaine personnalisé pour mapper le domaine www.example.com à la fonction myfunction.

  1. À partir du Code Engine Projects page, 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 fonction cible existante ; par exemple, myfunction. Pour cet exemple, la fonction myfunction 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 la fonction 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 qui sont envoyées à votre fonction ne sont pas (encore) acheminées vers votre domaine personnalisé. Ensuite, terminez la configuration de domaine personnalisé avec votre registre de domaine.

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 le secret TLS inclut la certification pour le domaine spécifié dans le mappage de domaine personnalisé. Le secret TLS peut contenir des certificats qui sont mappés à des domaines multiples spécifiques, tels que www.example.com et shop.example.com, ou à un domaine générique, tel que *.example.com. Notez que vous ne pouvez pas utiliser le domaine générique plus d'une fois dans une région.

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

Pour créer un mappage de domaine personnalisé avec 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 fonction cible et un secret TLS. Pour une liste complète des options, voir la commande ibmcloud ce domainmapping create

Avant de commencer

Lorsque votre nom de domaine est enregistré, vous disposez d'un certificat TLS signé et de sa clé privée correspondante pour ce domaine, et vous disposez d'une fonction Code Engine existante, vous êtes prêt à ajouter un mappage de domaine personnalisé. Vous pouvez utiliser la commande domainmapping create dans l'interface de ligne de commande pour créer un mappage de domaine personnalisé avec votre fonction 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 la fonction Code Engine myfunction 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 myhellofun --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

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 la fonction cible Code Engine Cette valeur est obligatoire.
--tls-secret Secret TLS pour le mappage de domaine. Cette valeur est obligatoire.

A présent, votre mappage de domaine personnalisé est créé dans Code Engine. Toutefois, les demandes qui sont envoyées à votre fonction ne sont pas (encore) acheminées vers votre domaine personnalisé. Ensuite, vous devez terminer la configuration de domaine personnalisé avec votre registre de domaine.

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 la fonction avec le mappage de domaine personnalisé.

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

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

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