Lancio dello storefront

Questa guida descrive come lanciare uno storefront PWA Kit e renderlo accessibile dal suo ufficiale indirizzo web pubblico. Per lanciare lo storefront PWA Kit e instradarvi il traffico sono disponibili tre opzioni:

  1. Utilizzare una CDN di terze parti come CloudFlare o Akamai.
  2. Utilizzare la eCDN (CDN incorporata) fornita da Salesforce Commerce Cloud. Per ulteriori informazioni sull'instradamento del traffico a Managed Runtime mediante la eCDN, consultare la guida.
  3. Utilizzare la CDN di Managed Runtime.

In questa guida verrà utilizzato uno storefront di esempio con i seguenti attributi:

  • URL di Production: https://www.example.com
  • ID progetto: example
  • ID ambiente: staging e production

L'impilamento di una CDN di terze parti su Managed Runtime è facoltativo. I clienti possono scegliere di utilizzare una CDN di terze parti in base a:

  • Un rapporto preesistente con il fornitore della CDN preferito, i cui team interni sono esperti di configurazione e gestione di reti CDN.
  • La necessità di un ulteriore controllo delle funzionalità CDN oltre a quello offerto da Managed Runtime, ad esempio regole WAF personalizzate, intestazioni di prestazioni aggiuntive e integrazioni di terze parti supplementari.

I clienti che vogliono un cost-to-serve e un time-to-market ridotti e hanno requisiti CDN limitati possono utilizzare la eCDN o la CDN integrata in Managed Runtime.

In questa guida si presuppone che l'utente abbia accesso all'applicazione web Runtime Admin e a Managed Runtime API per l'esecuzione delle attività amministrative. Per ottenere l'accesso a questi strumenti, rivolgersi all'amministratore Commerce Cloud e chiedere di aggiungere uno dei seguenti ruoli all'account che utilizza Account Manager: Managed Runtime User (Utente Managed Runtime) o Managed Runtime Admin (Amministratore Managed Runtime).

Per effettuare richieste a Managed Runtime API è necessario includere una chiave API nell'intestazione Authorization della richiesta HTTP con il valore Bearer $API_KEY. In tutte le richieste di esempio fornite, non dimenticare di sostituire $API_KEY con la chiave API effettiva.

Per individuare la chiave API, accedere a Runtime Admin e passare alla pagina Account Settings (Impostazioni account).

Importante: poiché la chiave API consente agli script di eseguire le operazioni automaticamente, è necessario considerarla come una password.

Per creare e aggiornare i record CNAME è necessario avere accesso al provider DNS e, a seconda dei casi, anche al provider CDN di terze parti.

Il termine "Mobify" compare in alcuni punti di questa guida. Mobify è il nome dell'azienda che in origine ha sviluppato la tecnologia successivamente adottata per PWA Kit e Managed Runtime. Nel 2020 Salesforce ha acquisito Mobify insieme a tutte le relative tecnologie.

Il nome del brand Mobify compare nel dominio mobify-storefront.com in cui viene ospitato lo storefront e nel dominio cloud.mobify.com utilizzato da Managed Runtime API.

Se occorre aggiungere una logica condizionale che modifichi il comportamento del sito in base al dominio utilizzato, risulta più facile testarla quando il server di sviluppo locale può utilizzare un dominio personalizzato. Perché dovrebbe essere necessario aggiungere questo tipo di logica? Si pensi, ad esempio, alla necessità di cercare un ID client SLAS diverso a seconda del dominio.

Per eseguire il server di sviluppo locale utilizzando un dominio personalizzato:

  1. Modificare il DNS del computer locale per risolvere il dominio personalizzato a 127.0.0.1 (localhost).
  2. Modificare ssr.js.
  3. Nelle options passate a runtime.createHandler, impostare la porta su 80.
  4. Eseguire EXTERNAL_DOMAIN_NAME=www.example.com npm start sostituendo il valore di example.com con il dominio personalizzato. L'esecuzione del server sulla porta 80 a volte può richiedere privilegi amministrativi.

Le richieste dal browser al dominio personalizzato ora vengono risolte e instradate al server di sviluppo locale.

Il processo di lancio è uguale sia per gli ambienti Staging sia per gli ambienti Production. L'unica differenza è rappresentata dal nome di dominio e dall'ambiente Managed Runtime utilizzato.

Si consiglia vivamente di eseguire il processo di lancio prima in un ambiente Staging e poi ripeterlo in un ambiente Production.

Per le istruzioni fornite, si supponga il lancio di uno storefront su staging.example.com con ID di progetto example in Managed Runtime e il proprio bundle distribuito in un ambiente denominato staging.

Questa procedura può essere completata in qualsiasi momento, ma è consigliabile eseguirla al primo utilizzo di PWA Kit.

Per esercitarsi con la procedura di lancio dello storefront, creare un ambiente (noto anche come target) denominato staging utilizzando l'applicazione web Runtime Admin o Managed Runtime API.

Di seguito è riportata una richiesta di esempio che utilizza l'endpoint projects_target_create di Managed Runtime API per creare un ambiente. Sostituire example nella richiesta con la stringa dell'ID progetto effettivo e $API_KEY con la chiave API effettiva:

Per le istruzioni sulla creazione di un ambiente con Runtime Admin, consultare la guida Amministrazione in Managed Runtime.

La maggior parte delle implementazioni di PWA Kit effettua richieste a OCAPI e ai controller forniti da B2C Commerce.

È necessario assicurarsi che Managed Runtime possa raggiungere il dominio associato all'istanza di B2C Commerce per effettuare queste richieste.

Per rendere raggiungibile il dominio in genere è necessario configurare la eCDN in modo da rendere l'istanza di B2C Commerce disponibile in un sottodominio come ecom.example.com. Per ulteriori informazioni, fare riferimento alla documentazione relativa all'impostazione e alla configurazione della eCDN.

Dopo aver configurato il dominio eCDN di B2C Commerce, aggiornare le impostazioni proxy dell'ambiente per utilizzare la nuova ubicazione dell'API. Per ulteriori informazioni, consultare la guida Invio delle richieste a un proxy.

Se si instrada il traffico direttamente alla CDN di Managed Runtime, Managed Runtime emette e gestisce automaticamente i certificati TLS.

Questo passaggio non è necessario se si utilizza una CDN o una eCDN di terze parti. Consultare la documentazione del fornitore della CDN per la configurazione dei certificati TLS.

Per consentire a Managed Runtime di emettere un certificato TLS, è necessario creare un record CNAME. Rivolgersi a Salesforce Customer Support, che fornirà i domini di certificato desiderati. Salesforce fornirà quindi i record CNAME di convalida dettagli per il certificato. I certificati con caratteri jolly, come *.example.com, sono supportati.

Il lancio con domini personalizzati è supportato per gli ambienti Staging e Production. Tutti gli altri ambienti, come Development, attualmente possono continuare a utilizzare solo i domini mobify-storefront.com predefiniti.

Il record CNAME DNS di convalida fornito deve essere creato entro 24 ore dal ricevimento dei dettagli e avrà il seguente aspetto:

Questo passaggio non è necessario se si utilizza una CDN di terze parti.

Ridurre la durata TTL di staging.example.com a un minuto. La riduzione della durata TTL accelera il processo di migrazione DNS e, in caso di errore, consente di eseguire rapidamente il rollback.

È possibile verificare la durata TTL utilizzando il comando dig:

Questo passaggio non è necessario se si utilizza una CDN di terze parti.

Configurare l'ambiente per ricevere il traffico dall'host staging.example.com.

Aggiornare le impostazioni ssr_external_domain e ssr_external_hostname dell'ambiente utilizzando Managed Runtime API:

Dopo questa fase, l'ambiente non è più accessibile sul proprio dominio mobify-storefront.com.

Verificare che le nuove impostazioni siano effettive utilizzando un comando cURL che effettui una richiesta con spoofing DNS:

Il processo di migrazione è diverso a seconda che si utilizzi una CDN di terze parti o la CDN di Managed Runtime.

Per questa opzione è necessario configurare la CDN in modo che punti all'origine Managed Runtime anziché all'origine CDN esistente. Per indicazioni dettagliate, fare riferimento alla documentazione del provider CDN.

Aggiungere il nome host esterno ({{project}}-{{environment}}.mobify-storefront.com) come origine nella CDN di terze parti. Assicurarsi che la CDN sia configurata per:

  • impostare l'intestazione Host in modo che corrisponda all'origine {{project}}-{{environment}}.mobify-storefront.com
  • inoltrare il metodo di richiesta
  • inoltrare il percorso (inclusa la stringa di query)
  • inoltrare le intestazioni
  • inoltrare il corpo
  • eseguire le istruzioni delle intestazioni di caching HTTP.

Considerare l'aggiunta di un handler in base alle richieste HTTP per verificare che la CDN sia configurata correttamente:

Considerare inoltre di aggiungere un proxy con httpbin.org/anything per verificare che le intestazioni passate ai proxy vengano inviate correttamente.

Per questa opzione è necessario eseguire una migrazione DNS per puntare il dominio dalla precedente origine alla CDN di Managed Runtime.

Salesforce Support fornisce un dominio stabile in base alla convenzione {{project}}-{{environment}}-cdn.mobify-storefront.com, dove {{project}} è l'ID progetto e {{environment}} è l'ID ambiente.

Aggiornare il record CNAME DNS per staging.example.com a example-staging-cdn.mobify-storefront.com.

Aprire il browser web e passare a staging.example.com.

Congratulazioni. Il lancio è stato completato. 🥳

Dopo aver completato questa procedura per un sito Staging, è possibile ripeterla per il dominio e l'ambiente Production.

A questo punto, con l'aiuto del Customer Success Group, monitorare il traffico del sito per verificare che il lancio sia andato a buon fine. L'obiettivo è verificare che durante il lancio tutto proceda come previsto.

Dopo il lancio, i clienti con piano Signature Success Plan hanno diritto al monitoraggio del sito proattivo. Per usufruire di questo ulteriore servizio di monitoraggio, è necessario contrassegnare l'ambiente come production. Per ulteriori informazioni, vedere la sezione relativa agli ambienti in Managed Runtime.

  • L'impostazione del target ssr_external_hostname controlla da quale host l'ambiente riceve traffico. Se l'intestazione Host HTTP di una richiesta non corrisponde a questo valore, la richiesta non va a buon fine e viene restituito un errore 403.
  • Attualmente Salesforce non supporta gli URL di storefront contenenti un dominio semplice, ad esempio example.com (senza sottodominio www). Per utilizzare un dominio semplice, è necessario impostare un server per il reindirizzamento delle richieste da tale dominio al proprio CNAME.