Configurar com autenticação híbrida
Regras da eCDN para implementações híbridas
Einstein Activities para implementações híbridas
Habilidades para o sucesso
Ask the Community
Uma implementação headless em fases é uma técnica que visa oferecer uma experiência de compra unificada usando várias tecnologias de loja (virtual) como o Storefront Reference Architecture (SFRA) e o Composable Storefront.
Uma zona CDN integrada (eCDN) pode rotear tráfego para o SFRA e para o Managed Runtime ao mesmo tempo, permitindo que você faça a implementação gradual do Composable Storefront.
Este guia descreve como usar as zonas CDN da Commerce API para rotear o tráfego para o Managed Runtime. Você também pode usar Business Manager para rotear o tráfego para o Managed Runtime. Configurar regras de roteamento do MRT no Business Manager
Antes de executar os comandos neste guia, substitua os espaços reservados por valores reais. Os espaços reservados são formatados da seguinte maneira: $PLACEHOLDER.
Ao longo deste guia, usamos um exemplo de vitrine com o URL https://www.example.comde produção.
Somente clientes existentes podem acessar alguns dos links desta página. Visite Salesforce Commerce Cloud GitHub Repositories and Access (Repositórios e acesso ao GitHub do Salesforce Commerce Cloud) para obter informações sobre como obter acesso aos repositórios do Commerce Cloud.
Tip
sfcc.cdn-zones.rw.alwaysUseHttps na zona. O Managed Runtime só é compatível com tráfego por HTTPS.redirect_uri de seu cliente SLAS API para incluir a zona.Com o endpoint createMrtRules, você pode criar regras que roteiem tráfego para um ambiente do 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 }'Vamos analisar os dados fornecidos no corpo da solicitação.
O valor de mrtHostname é o domínio do ambiente do Managed Runtime para roteamento de tráfego. Ele precisa fazer referência a um ambiente do Managed Runtime hospedado no domínio mobify-storefront.com. Se o valor fornecido é usado por uma regra existente, a solicitação falha.
O Managed Runtime é o único destino de roteamento compatível.
Note
O valor de expressions é um array do Cloudflare rule expressions (expressões de regras do Cloudflare) que controla quais solicitações são roteadas para o Managed Runtime. Para a maioria das implementações, uma única expressão de roteamento é suficiente.
Além das expressões fornecidas, as regras-padrão de roteamento a seguir são usadas:
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)As mudanças no roteamento são aplicadas imediatamente, e o acesso a um URL que corresponde à expressão retorna o conteúdo recuperado do Managed Runtime.
Há suporte para os seguintes cenários de roteamento:
Um único nome de host mapeado para um único ambiente MRT:
http.host eq \"www.example.com\" → example-production.mobify-storefront.comVários nomes de host mapeados para um único ambiente MRT:
http.host in {\"www.example.com\" \"prod.example.com\" \"us.example.com\"}→ example-production.mobify-storefront.comNo momento , não há suporte para o seguinte cenário de roteamento:
As expressões são validadas com base nos seguintes critérios:
http.host deve ocorrer exatamente uma vez e deve ser seguido pelo eq operador or in. Veja acima exemplos de uso.http.hosthttp.request.uri.pathhttp.request.urihttp.cookieAo continuar sua implementação em fases, você pode rotear mais solicitações para o Managed Runtime.
Para alterar uma expressão de roteamento, use getMrtRule para obter os IDs do conjunto de regras e a regra associados à expressão que você quer atualizar:
1curl "https://$CODE.api.commercecloud.salesforce.com/cdn/zones/v1/organizations/$ORG/zones/$ZONE/mrtrules" \
2--header "Authorization: Bearer $TOKEN"Em seguida, use updateMrtRule para atualizar a expressão:
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 }'Para adicionar mais regras de roteamento a um ambiente de tempo de execução gerenciado existente, use updateMrtRuleset e forneça as mrtHostname expressões de roteamento e adicionais:
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 }'Para adicionar regras de roteamento para um novo ambiente de tempo de execução gerenciado, use o endpoint createMrtRules e forneça um novo mrtHostname valor:
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 }'Para atualizar as regras existentes para rotear para um ambiente de Tempo de Execução Gerenciado diferente, use updateMrtRuleset e forneça o oldMrtHostname e o (novo) mrtHostname para o qual você deseja rotear:
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 }'Se você estiver migrando para uma CDN de terceiros ou não quiser mais rotear um caminho específico de eCDN para MRT, poderá desabilitar o roteamento.
Para desabilitar o roteamento, use getMrtRules para obter os IDs da configuração que você deseja excluir:
1curl "https://$CODE.api.commercecloud.salesforce.com/cdn/zones/v1/organizations/$ORG/zones/$ZONE/mrtrules" \
2--header "Authorization: Bearer $TOKEN"Em seguida, para remover a regra de roteamento do Managed Runtime, use deleteMrtRule e passe as IDs aplicáveis retornadas por 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"Se quiser remover todas as regras de roteamento do Managed Runtime, use 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"Quando você concluir sua implementação em fases ou se você estiver lançando um novo site, é possível escolher rotear todo o tráfego de uma zona para o Managed Runtime usando uma única expressão:
1http.host eq \"www.example.com\"Em ambientes em que a eCDN não está disponível, use o composable-hybrid-dev-server para simular o roteamento da eCDN.