APIs de CDN para implementações híbridas

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.

  1. Familiarize-se com a Autorização para as Admin APIs
  2. Você precisa ter um Cliente do Account Manager API com o escopo sfcc.cdn-zones.rw.
  3. Você precisa saber o ID da zona eCDN para usar com o Managed Runtime. Para obter essa informação, use o endpoint getZonesInfo da CDN Zones API.
  4. Use updateSecuritySettings para habilitar alwaysUseHttps na zona. O Managed Runtime só é compatível com tráfego por HTTPS.
  5. Configure o redirect_uri de seu cliente SLAS API para incluir a zona.
  6. Se você tiver restringido o conjunto de IPs com permissão de acesso ao seu ambiente do Managed Runtime, adicione os IPs do CloudFlare usados pela eCDN ao conjunto de IPs com permissão.

Com o endpoint createMrtRules, você pode criar regras que roteiem tráfego para um ambiente do Managed Runtime:

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.

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:

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:

      • Por exemplo, http.host eq \"www.example.com\"example-production.mobify-storefront.com
    • Vários nomes de host mapeados para um único ambiente MRT:

      • Por exemplo, http.host in {\"www.example.com\" \"prod.example.com\" \"us.example.com\"}example-production.mobify-storefront.com
  • No momento , não há suporte para o seguinte cenário de roteamento:

    • Um único nome de host mapeado para vários ambientes MRT com base em caminhos diferentes

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.
  • O(s) nome(s) de host deve(m) corresponder à zona. Ou, em outras palavras, a zona eCDN deve ter um certificado válido que cubra o(s) nome(s) de host fornecido(s).
  • Os campos a seguir são compatíveis:
    • http.host
    • http.request.uri.path
    • http.request.uri
    • http.cookie
  • O comprimento máximo de uma expressão é de 3072 caracteres.
  • O máximo de 100 expressões pode estar associado a uma zona.

Ao 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:

Em seguida, use updateMrtRule para atualizar a expressão:

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:

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:

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:

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:

Em seguida, para remover a regra de roteamento do Managed Runtime, use deleteMrtRule e passe as IDs aplicáveis retornadas por getMrtRules:

Se quiser remover todas as regras de roteamento do Managed Runtime, use deleteMrtRuleset:

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:

Em ambientes em que a eCDN não está disponível, use o composable-hybrid-dev-server para simular o roteamento da eCDN.