Configurer avec l’authentification hybride
Règles eCDN pour les implémentations hybrides
Einstein Activities pour les implémentations hybrides
Les compétences pour réussir
Ask the Community
Un déploiement headless échelonné permet d’offrir une expérience d’achat unique grâce à plusieurs technologies de boutique en ligne telles que Storefront Reference Architecture (SFRA) et Composable Storefront.
Une zone de CDN intégré (eCDN) peut router le trafic vers SFRA et Managed Runtime en même temps, ce qui vous permet de déployer progressivement une boutique Composable Storefront.
Ce guide explique comment utiliser les Zones CDN de l’API Commerce pour router le trafic vers Managed Runtime. Vous pouvez également utiliser Business Manager pour acheminer le trafic vers Managed Runtime. Configurer les règles de routage MRT dans Business Manager
Avant d’exécuter les commandes de ce guide, remplacez les espaces réservés par des valeurs réelles. Les espaces réservés sont formatés ainsi : $PLACEHOLDER.
Tout au long de ce guide, nous utilisons un exemple de boutique en ligne avec l’URL https://www.example.comde production.
Seuls les clients existants peuvent accéder à certains des liens de cette page. Visitez Salesforce Commerce Cloud GitHub Repositories and Access pour plus d’informations sur l’accès aux référentiels Commerce Cloud.
Tip
sfcc.cdn-zones.rw.alwaysUseHttps sur la zone. Managed Runtime ne prend en charge le trafic que via HTTPS.redirect_uri de votre client API SLAS afin d’inclure la zone.Le point de terminaison createMrtRules vous permet de créer des règles qui routent le trafic vers un environnement Managed Runtime :
1curl "https://$CODE.api.commercecloud.salesforce.com/cdn/zones/v1/organizations/$ORG/zones/$ZONE/mrtrules" \
2 --header "Authorization: Bearer $TOKEN" \
3 --header 'Content-Type: application/json' \
4 --data '{
5 "mrtHostname": "example-production.mobify-storefront.com",
6 "expressions": [
7 "http.host eq \"www.example.com\" and http.request.uri.path matches \"^/products\""
8 ]
9 }'Examinons les données fournies dans le corps de la requête.
La valeur de mrtHostname est le domaine de l’environnement Managed Runtime pour le routage du trafic. Elle doit faire référence à un environnement Managed Runtime hébergé sur le domaine mobify-storefront.com. Si la valeur fournie est utilisée par une règle existante, la request échoue.
Managed Runtime est la seule destination de routage prise en charge.
Note
La valeur de expressions est un tableau d’Expressions de règles Cloudflare qui déterminent quelles requests sont routées vers Managed Runtime. Pour la plupart des implémentations, une seule expression de routage suffit.
Les règles de routage par défaut ci-dessous s’appliquent en plus des expressions fournies :
1(
2 http.request.uri.path matches "^/callback.*" or
3 http.request.uri.path matches "^/mobify.*" or
4 http.request.uri.path matches "^/worker\.js.*"
5)Les modifications de routage s’appliquent immédiatement et la navigation vers une URL correspondant à une expression renvoie le contenu récupéré à partir de Managed Runtime.
Les scénarios de routage suivants sont pris en charge :
Un nom d’hôte unique mappé à un environnement MRT unique :
http.host eq \"www.example.com\" → example-production.mobify-storefront.comPlusieurs noms d’hôte mappés à un seul environnement MRT :
http.host in {\"www.example.com\" \"prod.example.com\" \"us.example.com\"}→ example-production.mobify-storefront.comLe scénario de routage suivant n’est actuellement pas pris en charge :
Les expressions sont validées par rapport aux critères suivants :
http.host doit se produire exactement une fois et doit être suivi par l’opérateur eq OU in. Voir ci-dessus pour des exemples d’utilisation.http.hosthttp.request.uri.pathhttp.request.urihttp.cookieAu fil de votre déploiement échelonné, le nombre de requests que vous pouvez router vers Managed Runtime augmente.
Pour modifier une expression de routage, utilisez getMrtRule pour obtenir les identifiants de l’ensemble de règles et de la règle associés à l’expression que vous souhaitez mettre à jour :
1curl "https://$CODE.api.commercecloud.salesforce.com/cdn/zones/v1/organizations/$ORG/zones/$ZONE/mrtrules" \
2--header "Authorization: Bearer $TOKEN"Utilisez ensuite updateMrtRule pour mettre à jour l’expression :
1curl "https://$CODE.api.commercecloud.salesforce.com/cdn/zones/v1/organizations/$ORG/zones/$ZONE/mrtrules/$RULESET/rules/$RULE" \
2--request 'PATCH' \
3--header "Authorization: Bearer $TOKEN" \
4--header 'Content-Type: application/json' \
5--data '{
6 "expression": "http.host eq \"www.example.com\" and (http.request.uri.path matches \"^/products\" or http.request.uri.path matches \"^/categories\")"
7 }'Pour ajouter d’autres règles de routage à un environnement Managed Runtime existant, utilisez updateMrtRuleset et fournissez les expressions de mrtHostname routage suivantes :
1curl "https://$CODE.api.commercecloud.salesforce.com/cdn/zones/v1/organizations/$ORG/zones/$ZONE/mrtrules" \
2 --request 'PATCH' \
3 --header "Authorization: Bearer $TOKEN" \
4 --header 'Content-Type: application/json' \
5 --data '{
6 "mrtHostname": "example-production.mobify-storefront.com",
7 "expressions": ["http.host eq \"www.example.com\" and http.request.uri.path matches \"^/home\""]
8 }'Pour ajouter des règles de routage pour un nouvel environnement Managed Runtime, utilisez le point de terminaison createMrtRules et fournissez une nouvelle mrtHostname valeur :
1curl "https://$CODE.api.commercecloud.salesforce.com/cdn/zones/v1/organizations/$ORG/zones/$ZONE/mrtrules" \
2--header "Authorization: Bearer $TOKEN" \
3--header 'Content-Type: application/json' \
4--data '{
5 "mrtHostname": "example-development.mobify-storefront.com",
6 "expressions": [
7 "http.host eq \"dev.example.com\" and http.request.uri.path matches \"^/products\""
8 ]
9 }'Pour mettre à jour des règles existantes afin de les acheminer vers un autre environnement d’exécution managée, utilisez updateMrtRuleset et indiquez le oldMrtHostname et le (nouveau) mrtHostname vers lequel vous souhaitez router :
1curl "https://$CODE.api.commercecloud.salesforce.com/cdn/zones/v1/organizations/$ORG/zones/$ZONE/mrtrules" \
2 --request 'PATCH' \
3 --header "Authorization: Bearer $TOKEN" \
4 --header 'Content-Type: application/json' \
5 --data '{
6 "oldMrtHostname": "example-old.mobify-storefront.com",
7 "mrtHostname": "example-new.mobify-storefront.com"
8 }'Si vous passez à un CDN tiers ou si vous ne souhaitez plus acheminer un chemin particulier de l’eCDN vers le MRT, vous pouvez désactiver le routage.
Pour désactiver le routage, utilisez getMrtRules pour obtenir les identifiants de la configuration que vous souhaitez supprimer :
1curl "https://$CODE.api.commercecloud.salesforce.com/cdn/zones/v1/organizations/$ORG/zones/$ZONE/mrtrules" \
2--header "Authorization: Bearer $TOKEN"Ensuite, pour supprimer la règle de routage Managed Runtime, utilisez deleteMrtRule et transmettez les ID applicables renvoyés par getMrtRules:
1curl "https://$CODE.api.commercecloud.salesforce.com/cdn/zones/v1/organizations/$ORG/zones/$ZONE/mrtrules/$RULESET/rules/$RULE" \
2--request 'DELETE' \
3--header "Authorization: Bearer $TOKEN"Si vous souhaitez supprimer toutes les règles de routage Managed Runtime, utilisez deleteMrtRuleset:
1`curl "https://$CODE.api.commercecloud.salesforce.com/cdn/zones/v1/organizations/$ORG/zones/$ZONE/mrtrules/$RULESET" \`
2--request 'DELETE' \
3--header "Authorization: Bearer $TOKEN"À la fin de votre déploiement échelonné ou lors du lancement d’un nouveau site, vous pouvez choisir de router tout le trafic d’une zone vers Managed Runtime à l’aide d’une seule expression :
1http.host eq \"www.example.com\"Dans les environnements où eCDN n’est pas disponible, utilisez composable-hybrid-dev-server pour simuler le routage de l’eCDN.