Pour accéder à une application ou une fonction dans Function Compute via un nom de domaine fixe en environnement de production, ou pour éviter les téléchargements forcés lors de l'accès à un déclencheur HTTP, associez un nom de domaine personnalisé à votre application ou fonction.
Cas d'usage
Associez un nom de domaine personnalisé à une fonction ou une application dans les situations suivantes :
Vous avez migré une application web vers Function Compute et souhaitez y accéder via son nom de domaine existant.
Vous avez développé une application web dans la console Function Compute et souhaitez utiliser différents chemins du même nom de domaine pour déclencher des fonctions distinctes.
Vous avez créé une application, telle qu'une application Stable Diffusion, dans le Centre d'applications serverless de Function Compute et souhaitez y accéder avec un nom de domaine statique.
Limites
Lors de l'association d'un nom de domaine personnalisé à une fonction, sélectionnez la région de cette fonction.
Les noms de domaine personnalisés sont sensibles à la casse. Saisissez le nom de domaine exactement tel qu'il est spécifié dans son dépôt ICP.
Les noms de domaine génériques et standards sont pris en charge, contrairement aux noms de domaine en caractères chinois.
Fonctionnement
Prérequis
-
Créez une fonction ou une application. Pour plus d'informations, consultez Créer une fonction et Créer une application.
L'association d'un nom de domaine personnalisé à une application l'associe également à la fonction correspondante. Cette ressource de fonction, créée automatiquement, se trouve dans la section Resource Information de la page Environment Details. Cliquez sur le nom de la fonction pour accéder à sa page de détails.
-
Votre nom de domaine personnalisé doit disposer d'un dépôt ICP auprès d'Alibaba Cloud en tant que fournisseur de services.
Suivez les instructions de dépôt ICP correspondant au fournisseur de services de votre nom de domaine et au compte propriétaire.
-
Noms de domaine enregistrés avec le compte Alibaba Cloud actuel
Connectez-vous au système de dépôt ICP d'Alibaba Cloud pour finaliser le dépôt ICP du nom de domaine personnalisé.
-
Noms de domaine enregistrés avec un autre compte Alibaba Cloud
Nous vous recommandons d'utiliser le compte Alibaba Cloud ayant enregistré le nom de domaine pour effectuer le dépôt ICP. Connectez-vous ensuite au système de dépôt ICP d'Alibaba Cloud pour finaliser le dépôt ICP du nom de domaine personnalisé.
-
Noms de domaine non enregistrés avec un compte Alibaba Cloud
Si le dépôt ICP de votre nom de domaine a été géré par un autre fournisseur de services, mettez à jour ce dépôt pour ajouter Alibaba Cloud comme fournisseur. Connectez-vous au système de dépôt ICP d'Alibaba Cloud pour procéder à cette modification.
RemarqueLes noms de domaine personnalisés associés à des fonctions dans la région Chine (Hong Kong) ou dans des régions hors de Chine continentale ne nécessitent pas de dépôt ICP.
En cas de doute concernant le bureau d'enregistrement de votre nom de domaine, effectuez une requête WHOIS.
Pour déterminer si un nom de domaine est enregistré sous votre compte Alibaba Cloud actuel, consultez la console DNS d'Alibaba Cloud.
-
1. Ajouter un nom de domaine personnalisé
-
Connectez-vous à la console Function Compute. Dans le volet de navigation de gauche, choisissez . Sélectionnez une région, puis cliquez sur Add Custom Domain Name.
ImportantLors de l'association d'un nom de domaine personnalisé à une fonction, assurez-vous que le nom de domaine et la fonction se trouvent dans la même région.
-
Sur la page Add Custom Domain Name, saisissez un nom de domaine personnalisé disposant d'un dépôt ICP auprès d'Alibaba Cloud. Les noms de domaine uniques (par exemple,
www.aliyun.com) et les noms de domaine génériques (par exemple,*.aliyun.com) sont tous deux pris en charge.Notez le Internet CNAME ou le Internal CNAME, nécessaire à l'étape suivante pour configurer la résolution du nom de domaine. Le tableau ci-dessous décrit les formats de CNAME.
Type de CNAME
Format
Exemple
CNAME Internet
<account_id>.<region_id>.fc.aliyuncs.comSi l'ID de votre compte Alibaba Cloud est 1413397765**** et que votre fonction ou application se trouve dans la région Chine (Hangzhou) :
Le CNAME Internet est
1413397765****.cn-hangzhou.fc.aliyuncs.com.CNAME interne
<account_id>.<region_id>-internal.fc.aliyuncs.comLe CNAME interne est
1413397765****.cn-hangzhou-internal.fc.aliyuncs.com.
2. Configurer la résolution du nom de domaine
Connectez-vous à la console DNS d'Alibaba Cloud et associez le nom de domaine au CNAME de Function Compute. Pour plus d'informations, consultez Ajouter un enregistrement DNS.
Lors de la configuration de l'enregistrement DNS, définissez la Record Value sur le CNAME Function Compute obtenu à l'étape précédente. Pour un accès au nom de domaine via Internet, définissez la Record Value sur le CNAME Internet de Function Compute.
Lors de la configuration de l'enregistrement DNS, définissez Record Type sur CNAME, saisissez @ pour Hostname, et réglez Resolution Line sur Default.
3. Finaliser la configuration du domaine
Retournez à la page Add Custom Domain Name de l'Étape 1. Configurez les options suivantes et cliquez sur Create.
3,1 Configuration du routage
Si votre application contient plusieurs fonctions, mappez différents chemins de requête pour déclencher des fonctions spécifiques. Pour plus d'informations, consultez Règles de correspondance des chemins.
Pour réécrire l'URI d'une requête correspondant à un chemin spécifique selon des règles définies, reportez-vous à Configurer une politique de réécriture (en préversion publique).
Les paramètres de routage sont gérés dans un tableau. Chaque règle comprend les champs Path, Function Name, Version/Alias et Rewrite Policy. Par exemple, mappez le chemin /test1 à la fonction test-renwu, et utilisez /* comme chemin de secours associé à une fonction par défaut. Sélectionnez LATEST comme version pour toutes les règles.
3,2 (Facultatif) Paramètres HTTPS
Pour activer l'accès HTTPS pour le nom de domaine personnalisé, configurez les paramètres suivants.
|
Paramètre |
Actions |
|
HTTPS |
Une fois activé, le nom de domaine personnalisé prend en charge HTTP et HTTPS. S'il est désactivé, seul HTTP est pris en charge. Remarque
Cochez également la case Redirects HTTP Requests to HTTPS. Cette option restreint l'accès au protocole HTTPS uniquement, et Function Compute redirige toutes les requêtes HTTP vers HTTPS. |
|
Certificate Type |
Sélectionnez le type de certificat à télécharger. Valeurs valides :
Remarque
La taille du certificat téléchargé ne peut excéder 20 Ko, et celle de la clé du certificat ne peut dépasser 4 Ko. |
|
TLS Version |
Sélectionnez la version du protocole TLS (Transport Layer Security) pour la fonction. Remarque
Après avoir sélectionné une version TLS, cochez la case Enable Support for TLS1.3 pour activer TLS 1.3. |
|
Cipher Suite |
Sélectionnez les suites cryptographiques TLS. Si ce paramètre n'est pas configuré, toutes les suites cryptographiques sont sélectionnées par défaut. Valeurs valides :
Important
|
3,3 (Facultatif) Paramètres d'authentification
No Authentication : Aucune authentification n'est requise pour les requêtes HTTP. L'accès anonyme est autorisé ; toute personne peut envoyer des requêtes HTTP pour invoquer votre fonction.
Signature Authentication : Une authentification par signature est appliquée aux requêtes HTTP. Pour plus d'informations, consultez Configurer l'authentification par signature pour un nom de domaine personnalisé.
Basic Authentication : Méthode d'authentification HTTP standard. Configurez un nom d'utilisateur et un mot de passe dans la console Function Compute. Le client doit inclure des identifiants valides dans l'en-tête Authorization. L'accès n'est accordé que si les informations utilisateur de la requête correspondent au nom d'utilisateur et au mot de passe configurés. Pour plus d'informations, consultez Configurer l'authentification Basic pour un nom de domaine personnalisé.
JWT Authentication : Une authentification JWT est effectuée sur les requêtes HTTP afin de garantir que seuls les clients disposant d'un JWT valide peuvent accéder à la fonction. Pour plus d'informations, consultez Configurer l'authentification JWT pour un nom de domaine personnalisé.
Bearer Authentication : Une authentification Bearer est appliquée aux requêtes HTTP. Configurez les jetons autorisés dans la console Function Compute. Le client doit inclure un jeton valide dans l'en-tête Authorization. L'accès n'est accordé que si le jeton de la requête correspond à un jeton configuré. Pour plus d'informations, consultez Configurer l'authentification Bearer pour un nom de domaine personnalisé.
3,4 (Facultatif) Paramètres du pare-feu d'applications web
Une fois activé, le Web Application Firewall (WAF) inspecte le trafic vers votre fonction, filtre les requêtes malveillantes et ne transfère que le trafic sûr au backend. Cela protège votre fonction contre les attaques. Pour plus d'informations, consultez Activer le Web Application Firewall.
3,5 (Facultatif) Paramètres CDN
Après avoir associé un nom de domaine personnalisé à une application web, utilisez ce nom de domaine comme origine, ajoutez un nom de domaine accéléré, puis configurez un CNAME pour ce dernier afin d'activer l'accélération CDN. L'application déployée sur Function Compute sert alors de serveur d'origine pour publier le contenu sur les nœuds périphériques. Les utilisateurs finaux récupèrent ainsi rapidement le contenu requis, ce qui réduit efficacement la latence d'accès et améliore la qualité du service.
-
Activez l'accélération CDN, saisissez un CDN-Accelerated Domain Name personnalisé, puis cliquez sur Create pour l'ajouter.
Pour que l'accélération soit effective, configurez manuellement l'enregistrement DNS du nom de domaine accéléré. Le service Alibaba Cloud CDN génère une valeur CNAME pour ce nom de domaine. Mappez ce CNAME à votre nom de domaine accéléré.
ImportantLa fonctionnalité d'accélération CDN consomme du trafic Internet et engendre des frais de trafic. Pour plus d'informations, consultez Aperçu de la facturation.
Le nom de domaine personnalisé et le nom de domaine accéléré doivent être différents. Pour économiser les ressources de noms de domaine, configurez le nom de domaine accéléré comme sous-domaine de votre nom de domaine personnalisé. Par exemple, si votre nom de domaine personnalisé est
example.com, définissez le nom de domaine accéléré surfast.example.com.
-
Cliquez sur le nom de domaine personnalisé configuré. Sur la page de détails, dans la section CDN Acceleration Settings, cliquez sur CDN Settings dans la colonne Actions. Vous serez redirigé vers la console Alibaba Cloud CDN, où vous trouverez le CNAME de votre nom de domaine accéléré.
Le CNAME suit le format
Nom de domaine accéléré.w.kunlun**.com, par exemplefast.example.com.w.kunlunle.com. -
Connectez-vous à la console DNS d'Alibaba Cloud, localisez votre nom de domaine personnalisé et créez un enregistrement DNS pointant le nom de domaine accéléré vers le CNAME attribué pour activer l'accélération. Pour plus d'informations, consultez Ajouter un enregistrement DNS.
Définissez Record Type sur CNAME - Map a domain name to another domain name.
Définissez Hostname sur la première partie du sous-domaine (dans cet exemple,
fast). Définissez Record Value sur la valeur CNAME du nom de domaine accéléré obtenue à l'étape précédente.
3,6 (Facultatif) Configuration CORS
Configurez le partage de ressources cross-origin (CORS) pour un nom de domaine personnalisé en appelant l'opération API UpdateCustomDomain. Pour plus d'informations, consultez Gérer les requêtes CORS.
4. Vérifier le nom de domaine personnalisé
4,1 Vérifier l'accès au nom de domaine personnalisé
Méthode 1 : Utilisez la commande
curl URL. Exemple :curl example.com/login.-
Méthode 2 : Utilisez un navigateur web.
Saisissez l'URL de la requête dans la barre d'adresse et appuyez sur Entrée pour vérifier que la fonction cible est bien invoquée.
4,2 (Facultatif) Vérifier le nom de domaine accéléré
Dans un navigateur, utilisez le nom de domaine accéléré configuré à l'Étape 3,5 (Facultatif) Paramètres CDN pour accéder à l'application. Ouvrez ensuite les outils de développement et vérifiez la valeur de l'en-tête de réponse X-Cache pour confirmer que l'accélération CDN fonctionne.
L'en-tête de réponse X-Cache indique l'état du cache. Une valeur MISS signale une absence de cache lors du premier accès, ce qui signifie que la requête a été traitée par le serveur d'origine. Une requête ultérieure devrait retourner HIT, indiquant un succès de cache.
|
Absence lors du premier accès |
Succès lors des accès suivants |
|
Dans les outils de développement du navigateur, accédez au panneau Network. Sélectionnez la requête cible et consultez l'onglet Headers. Confirmez que le Status Code est |
Dans les outils de développement du navigateur, vérifiez l'onglet Headers pour la deuxième requête dans le panneau Network. Le Status Code est |
Suites cryptographiques
Suites cryptographiques fortes et faibles
Versions TLS et suites cryptographiques
Correspondance des noms RFC et OpenSSL
Règles de correspondance
Règles de correspondance des routes
Lorsque vous associez un nom de domaine personnalisé, mappez des chemins à des fonctions. Ainsi, les requêtes provenant de différents chemins déclenchent leurs fonctions correspondantes. Function Compute prend en charge deux types de correspondance de chemins : exacte et approximative.
-
Correspondance exacte : Une requête déclenche une fonction uniquement lorsque son chemin est identique au chemin configuré.
Par exemple, si vous configurez une route mappant le chemin /a à la fonction f1, version 1, seules les requêtes pour /a déclencheront la fonction. Une requête pour /a/ ne correspondra pas.
-
Correspondance approximative : Utilise un caractère générique (*) à la fin d'un chemin pour faire correspondre toute requête dont le préfixe de chemin concorde.
Par exemple, si vous configurez une route avec le chemin /login/* ciblant la fonction f2, version 1, toute requête dont le chemin commence par /login/ (comme /login/a ou /login/b/c/d) déclenchera la fonction.
Si plusieurs routes sont configurées pour un nom de domaine personnalisé, la correspondance exacte prime sur la correspondance approximative.
-
Si plusieurs routes à correspondance approximative s'appliquent à une requête, celle présentant le préfixe correspondant le plus long est utilisée.
Prenons l'exemple d'un nom de domaine personnalisé
example.comavec deux chemins configurés : /login/a/* et /login/*. Une requête vers example.com/login/a/b correspond aux deux chemins. Toutefois, selon le principe du préfixe le plus long, la requête est routée vers la fonction associée à /login/a/* car c'est le chemin le plus spécifique.
Exemple
Supposons que vous ayez configuré les cinq règles de routage suivantes pour le nom de domaine personnalisé example.com.
|
Règle de routage |
Chemin |
Nom de la fonction |
Version |
|
Règle de routage 1 |
/ |
f1 |
1 |
|
Règle de routage 2 |
/* |
f2 |
2 |
|
Règle de routage 3 |
/login |
f3 |
3 |
|
Règle de routage 4 |
/login/a |
f4 |
4 |
|
Règle de routage 5 |
/login/* |
f5 |
5 |
Le tableau suivant présente les résultats de correspondance.
|
URL de la requête |
Fonction |
Version |
Chemin |
|
example.com |
f1 |
1 |
/ |
|
example.com/user |
f2 |
2 |
/* |
|
example.com/login |
f3 |
3 |
/login |
|
example.com/login/a |
f4 |
4 |
/login/a |
|
example.com/login/a/b |
f5 |
5 |
/login/* |
|
example.com/login/b |
f5 |
5 |
/login/* |
Règles de correspondance des noms de domaine
Function Compute fait correspondre le nom de domaine d'une requête à un nom de domaine personnalisé configuré, puis transfère la requête à la fonction appropriée. Function Compute prend en charge la correspondance exacte et approximative pour les noms de domaine.
Correspondance exacte : Une requête déclenche une fonction uniquement lorsque son nom de domaine est identique à un nom de domaine unique configuré.
Correspondance approximative : Une requête peut déclencher une fonction si son nom de domaine correspond à un nom de domaine générique configuré. Un nom de domaine générique doit utiliser un seul caractère générique (*) comme première étiquette.
Si une requête correspond à la fois à un nom de domaine unique et à un nom de domaine générique, le nom de domaine unique est prioritaire.
Un nom de domaine générique ne peut correspondre qu'à un nom de domaine de même niveau. Par exemple, le nom de domaine générique
*.aliyun.compeut correspondre àfc.aliyun.com, mais pas àcn-hangzhou.fc.aliyun.com. En effet,*.aliyun.cometfc.aliyun.comsont tous deux des domaines de troisième niveau, tandis quecn-hangzhou.fc.aliyun.comest un domaine de quatrième niveau.
Exemple
Supposons que vous disposiez des noms de domaine personnalisés suivants : fc.aliyun.com, *.aliyun.com et *.fc.aliyun.com. Le tableau suivant indique à quel nom de domaine chaque requête correspond.
|
Domaine de la requête |
Domaine correspondant |
|
fc.aliyun.com |
fc.aliyun.com |
|
fnf.aliyun.com |
*.aliyun.com |
|
cn-hangzhou.fc.aliyun.com |
*.fc.aliyun.com |
|
accountID.cn-hangzhou.fc.aliyun.com |
aucun |
FAQ
Endpoint public pour la production
Erreur 502 sur le domaine personnalisé
Erreur avec les noms de domaine chinois
Téléchargements forcés dans le navigateur
Redirection 301 du domaine accéléré
Sélection de fonction dans le routage
Fonction non déclenchée par le chemin de route
Diagnostic
Si une erreur survient lors de l'association d'un nom de domaine personnalisé, le serveur retourne un message d'erreur. Ce tableau liste les codes d'erreur courants pour vous aider à identifier et résoudre ces problèmes.
|
Code d'erreur |
Code d'état HTTP |
Message d'erreur |
Cause |
|
InvalidICPLicense |
400 |
domain name '%s' has not got ICP license, or the ICP license does not belong to Aliyun |
Le nom de domaine ne dispose pas de dépôt ICP, ou son dépôt ne liste pas Alibaba Cloud comme fournisseur de services. |
|
DomainNameNotResolved |
400 |
domain name '%s' has not been resolved to your FC endpoint, the expected endpoint is '%s' |
L'enregistrement CNAME du nom de domaine ne pointe pas vers l'endpoint spécifié. Pour le vérifier, utilisez la commande dig ou vérifiez les paramètres de votre serveur DNS. |
|
DomainRouteNotFound |
404 |
no route found in domain '%s' for path '%s' |
Aucune fonction n'est configurée pour le chemin spécifié. |
|
TriggerNotFound |
404 |
trigger 'http' does not exist in service '%s' and function '%s' |
La fonction associée au nom de domaine personnalisé ne possède pas de déclencheur HTTP. |
|
DomainNameNotFound |
404 |
domain name '%s' does not exist |
Le nom de domaine demandé n'existe pas. |
|
DomainNameAlreadyExists |
409 |
domain name '%s' already exists |
Le nom de domaine spécifié existe déjà. |
Si le problème persiste, rejoignez le groupe DingTalk (ID du groupe : 64970014484) pour obtenir l'aide des ingénieurs Function Compute.