Lancio dello storefront
Questa guida descrive come lanciare un nuovo storefront PWA Kit e renderlo accessibile dal relativo indirizzo web pubblico ufficiale. Per lanciare lo storefront PWA Kit e instradarvi il traffico sono disponibili due opzioni:
- Utilizzare una CDN di terze parti come CloudFlare o Akamai.
- Utilizzare la CDN fornita da Managed Runtime.
In questa guida verrà utilizzato uno storefront di esempio con i seguenti attributi:
- URL Production:
https://www.example.com
- ID progetto:
example
- Ambienti:
staging
eproduction
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 processo di rebranding da Mobify a Salesforce è ancora in corso. Il nome del brand Mobify compare ancora nel dominio mobify-storefront.com
in cui viene ospitato lo storefront e nel dominio cloud.mobify.com
utilizzato da Managed Runtime API. Sebbene i nuovi domini Salesforce sostituiranno in futuro i domini Mobify, il supporto per questi ultimi rimarrà attivo.
Managed Runtime supporta l'uso di una CDN di terze parti di fronte a uno storefront PWA Kit. Iniziare implementando l'ambiente con le impostazioni predefinite. In seguito aggiungere lo storefront ({{project}}-{{environment}}.mobify-storefront.com
) come origine nella CDN di terze parti. Verificare che la CDN sia configurata per l'inoltro del metodo di richiesta, del percorso (inclusa la stringa di query), delle intestazioni e del corpo. Assicurarsi inoltre che la CDN sia impostata per 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.
Verranno illustrate le tre fasi del "go live": preparazione, lancio di un ambiente Staging e lancio dell'ambiente Production.
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.
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 Managed Runtime API o l'applicazione web Runtime Admin.
Di seguito è riportata una richiesta di esempio che utilizza l'endpoint target
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 istruzioni sulla creazione di un ambiente con Runtime Admin, consultare la guida Amministrazione in Managed Runtime.
Poiché il codice dello storefront deve essere in grado di accedere all'istanza di B2C Commerce, le API devono essere disponibili pubblicamente.
Si supponga che attualmente www.example.com
venga risolto in un'istanza di B2C Commerce. Dopo il lancio, www.example.com
verrà risolto nel dominio mobify-storefront.com
. Il codice dello storefront deve poter richiamare le API associate all'istanza di B2C Commerce. È possibile scegliere di rendere le API disponibili su api.example.com
e aggiornare le impostazioni proxy dell'ambiente per permetterne l'utilizzo. Per ulteriori informazioni, consultare la guida Invio delle richieste a un proxy.
Per consentire a Salesforce di emettere un certificato TLS per il dominio, è necessario creare un record CNAME. Contattare Salesforce Customer Support e richiedere i dettagli necessari per la creazione di un record CNAME per lo storefront.
Creare il record CNAME entro 24 ore dal ricevimento dei dettagli. Un record CNAME ha il seguente aspetto:
Il processo di lancio deve essere sempre testato in primo luogo in un ambiente Staging.
Si supponga di lanciare uno storefront su staging.example.com
con ID progetto example
in Managed Runtime e bundle distribuito in un ambiente denominato staging
.
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
:
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:
Importante: 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:
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 di prova è stato completato. 🥳
Quando è tutto pronto per il lancio dell'ambiente Production, eseguire la stessa procedura utilizzata per il lancio di prova, ma con dominio e 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_domain
controlla da quale host il target riceve traffico. Se l'intestazioneHost
HTTP di una richiesta non corrisponde a questo valore, la richiesta non va a buon fine. - Attualmente Salesforce non supporta gli URL di storefront contenenti un dominio semplice, ad esempio
example.com
(senza sottodominiowww
). Per utilizzare un dominio semplice, è necessario impostare un server per il reindirizzamento delle richieste da tale dominio al proprio CNAME.
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:
- Modificare il DNS del computer locale per risolvere il dominio personalizzato a
127.0.0.1
(localhost). - Modificare
ssr.js
. - Nelle
options
passate aruntime.createHandler
, impostare la porta su80
. - Eseguire
EXTERNAL_DOMAIN_NAME=www.example.com npm start
sostituendo il valore diexample.com
con il dominio personalizzato. L'esecuzione del server sulla porta80
potrebbe richiedere privilegi amministrativi.
Le richieste dal browser al dominio personalizzato ora vengono risolte e instradate al server di sviluppo locale.
Buon lavoro di debugging. 😊