Configurez une politique de réécriture pour modifier l'URI d'une requête adressée à votre fonction via un nom de domaine personnalisé. Cette rubrique décrit les modèles de réécriture disponibles et explique comment configurer une politique de réécriture pour votre nom de domaine personnalisé dans la console Function Compute.
Contexte
Dans Function Compute, une politique de réécriture ne modifie que les composants path et query d'une URI de requête. La modification des composants scheme, host, port ou fragment n'est pas prise en charge.
Modèles de réécriture
Function Compute prend en charge les réécritures au niveau des routes pour les noms de domaine personnalisés et propose trois modèles : réécriture exacte, réécriture avec caractères génériques et réécriture par expression régulière.
Réécriture exacte
Lors d'une réécriture exacte, si le path de la requête correspond exactement à la règle de correspondance, le path est remplacé selon la règle de remplacement. Par exemple, si la règle de correspondance est /old et la règle de remplacement /new, une requête vers /old devient /new.
|
Règle de correspondance |
Règle de remplacement |
URI d'origine |
URI réécrite |
|
|
|
|
|
|
|
Aucune correspondance |
||
|
|
|
|
|
Réécriture avec caractères génériques
La réécriture avec caractères génériques offre un moyen simple de faire correspondre les requêtes et convient à la plupart des cas d'utilisation.
Dans la règle de remplacement, référencez la chaîne capturée par chaque astérisque selon sa position. Par exemple, si la règle de correspondance est /api/* et la règle de remplacement /$1, une requête vers /api/getFunctionName devient /getFunctionName.
Dans une réécriture avec caractères génériques, * et ^ ont des significations spéciales. Tous les autres caractères sont interprétés comme des chaînes littérales.
*correspond à n'importe quelle chaîne.^ancre la correspondance au début de la chaîne.
|
Règle de correspondance |
Règle de remplacement |
URI d'origine |
URI réécrite |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
Aucune correspondance |
||
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Aucune correspondance |
Réécriture par expression régulière
Pour une réécriture par expression régulière, la règle de correspondance et la règle de remplacement suivent la syntaxe standard des expressions régulières. Pour plus d'informations sur cette syntaxe, consultez Syntaxe des expressions régulières.
La réécriture par expression régulière est une fonctionnalité avancée dotée d'une syntaxe complexe, conçue pour des cas d'utilisation spécifiques. Pour la plupart des scénarios, nous recommandons d'utiliser la réécriture avec caractères génériques.
|
Règle de correspondance |
Règle de remplacement |
URI d'origine |
URI réécrite |
|
|
|
|
|
|
|
Aucune correspondance |
||
|
|
|
|
|
|
|
|
Ordre de correspondance et priorité
La priorité des trois modèles de réécriture, de la plus élevée à la plus basse, est la suivante : réécriture exacte → réécriture avec caractères génériques → réécriture par expression régulière.
Vous pouvez configurer plusieurs politiques de réécriture pour une seule règle de routage. Si une requête correspond à plusieurs politiques du même type, Function Compute applique la première selon l'ordre spécifié et ignore les suivantes.
Prenons par exemple les politiques de réécriture avec caractères génériques suivantes :
var rule1 = &WildcardRules{
Match: "/api/v1/*",
Replacement: "/api/v2/$1",
}
var rule2 = &WildcardRules{
Match: "/api/*/*",
Replacement: "/api/v3/$2",
}
Si les politiques de réécriture sont ordonnées [rule1, rule2], une requête vers
/api/v1/getFunctionNamedevient/api/v2/getFunctionName.Si les politiques de réécriture sont ordonnées [rule2, rule1], une requête vers
/api/v1/getFunctionNamedevient/api/v3/getFunctionName.
Prérequis
Procédure
Ajoutez une politique de réécriture à un nom de domaine personnalisé nouveau ou existant.
Nouveau nom de domaine
Connectez-vous à la console Function Compute. Dans le volet de navigation de gauche, choisissez .
Dans la barre de navigation supérieure, sélectionnez une région. Sur la page Custom Domains, cliquez sur Add Custom Domain Name.
Sur la page Add Custom Domain Name, saisissez un nom de domaine. Dans la section Routing Settings, cliquez sur Configure sous Configuration.
-
Dans le panneau Configure Rewrite Policy, cliquez sur + Add Rewrite Policy, configurez la politique, puis cliquez sur OK.
Les politiques de réécriture proposent trois options de Policy Type : exact rewrite (par exemple, règle de correspondance
/oldet règle de remplacement/new), wildcard rewrite (par exemple, règle de correspondance/api/*et règle de remplacement$1), et regex rewrite (par exemple, règle de correspondance^/api/.+?/(.*)et règle de remplacement/api/v2/$1). Pour chaque politique, configurez une Matching rule et une Replacement rule.
Nom de domaine existant
Connectez-vous à la console Function Compute. Dans le volet de navigation de gauche, choisissez .
Dans la barre de navigation supérieure, sélectionnez une région. Dans la liste des noms de domaine, localisez le nom de domaine cible et cliquez sur Modify dans la colonne Actions.
Sur la page de modification du nom de domaine personnalisé, accédez à la section Routing Settings et cliquez sur Configure sous Configuration.
Dans le panneau Configure Rewrite Policy, cliquez sur + Add Rewrite Policy, configurez la politique, puis cliquez sur OK.