推出您的網店

本指南說明如何推出 PWA Kit 網店,使其可以從正式、公開的網址存取。您有三種選擇來推出您的 PWA Kit 網店,並將流量路由至該處:

  1. 使用第三方 CDN,像 Cloudflare 或 Akamai。
  2. 使用由 Salesforce Commerce Cloud 提供的嵌入式 CDN (eCDN)。想進一步瞭解如何使用 eCDN 將流量路由至 Managed Runtime,請參閱指南
  3. 使用 Managed Runtime CDN。

在這份指南中,我們使用了擁有以下屬性的網店作為範例:

  • Production URL:https://www.example.com
  • 專案 ID:example
  • 環境 ID:stagingproduction

要不要在 Managed Runtime 之上堆疊第三方 CDN 全由您做主。客戶可根據下列情況而選擇使用第三方 CDN:

  • 原本就與其所選的 CDN 供應商存在合作關係,內部團隊已有設定和管理 CDN 的技能。
  • 需要額外控制 CDN 功能,但這超出 Managed Runtime 所能提供,例如自訂 WAF 規則、額外效能標頭、其他第三方整合等。

想要降低處理成本、快速上市、對 CDN 要求有限的客戶可以使用 eCDN 或內建的 Managed Runtime CDN。

這份指南假設您擁有 Runtime Admin 網路應用程式和 Managed Runtime API 的存取權限,以執行管理員任務。若要存取這些工具,請聯絡您的 Commerce Cloud 管理員,請他們使用 Account Manager 將以下任一角色加到您的帳戶:Managed Runtime UserManaged Runtime Admin

若要向 Managed Runtime API 提出要求,您必須在 HTTP 要求 Authorization 標頭中包含 API 金鑰和此值 Bearer $API_KEY。參考我們提供的範例要求時,別忘了以您實際的 API 金鑰取代 $API_KEY

若要尋找您的 API 金鑰,請登入 Runtime Admin,並前往 Account Settings (帳戶設定) 頁面。

重要:請將您的 API 金鑰視為密碼,因為這能代表您允許指令碼執行操作。

您需要存取您的 DNS 提供者以建立和更新 CNAME 記錄,也需要存取您的第三方 CDN 提供者 (若適用)。

在這份指南中,「Mobify」這個名字會出現數次。Mobify 是一間公司,開發了最終成為 PWA Kit 和 Managed Runtime 的技術。Salesforce 在 2020 年收購了 Mobify 及其所有技術。

Mobify 品牌名稱會出現在用來代管網店的 mobify-storefront.com 網域和 Managed Runtime API 使用的 cloud.mobify.com 網域中。

如果需要新增條件式邏輯來根據使用的網域改變您網站的行為,那麼當您的本機開發伺服器可以使用自訂網域時,會更容易測試此邏輯。為什麼需要新增這種邏輯?比方說,設想一下您需要根據網域來查詢不同的 SLAS 用戶端 ID。

若要使用自訂網域來執行本機開發伺服器:

  1. 修改本機電腦的 DNS,將您的自訂網域解析為 127.0.0.1 (localhost)。
  2. 編輯 ssr.js
  3. 在傳遞給 runtime.createHandleroptions 中,將連接埠設為 80
  4. 執行 EXTERNAL_DOMAIN_NAME=www.example.com npm start,將 example.com 的值替換為您的自訂網域。在連接埠 80 上執行伺服器有時候可能需要管理權限。

從您瀏覽器發送到自訂網域的要求現在已經能夠解析,並路由到您的本機開發伺服器了!

推出環境的程序對於 Staging 和 Production 是相同的,唯一的差別在於網域名稱和使用的 Managed Runtime 環境。

我們強烈建議先在 Staging 環境中執行一次推出流程,再在 Production 環境中重複此流程。

基於提供的指示,想像您將在 staging.example.com 推出網店,您在 Managed Runtime 的專案 ID 是 example,而您的套件部署至名為 staging 的環境。

您可以隨時完成這些步驟,但我們建議在開始使用 PWA Kit 時就立即完成。

使用 Runtime Admin 網路應用程式或 Managed Runtime API,建立稱為 staging 的環境 (又稱為目標) 來練習推出網店。

以下是使用 Managed Runtime API 的 projects_target_create 端點來建立環境的要求範例。以您實際的專案 ID 字串取代要求中的 example,並以您實際的 API 金鑰取代 $API_KEY

如需使用 Runtime Admin 來建立環境的指示,請參閱我們的 Managed Runtime 管理指南。

大多數 PWA Kit 實作會對 OCAPI 和 B2C Commerce 提供的控制器提出要求。

您必須確保 Managed Runtime 可以抵達與您用來提出這些要求的 B2C Commerce 執行個體相關聯的網域。

要讓網域可供存取,通常必須設定 eCDN,以讓您的 B2C Commerce 執行個體在 ecom.example.com 這樣的子網域上可用。如需更多資訊,請參考 eCDN 設定與配置文件

設定好 B2C Commerce eCDN 網域之後,請更新您環境的 Proxy 設定,以使用新的 API 位置。如需更多資訊,請參閱我們的 Proxy 要求指南。

如果您直接將流量路由至 Managed Runtime CDN,則 Managed Runtime 會為您簽發及管理 TLS 憑證。

使用第三方 CDN 或 eCDN 時,就不需要此步驟。請參閱 CDN 供應商的文件以設定 TLS 憑證。

若要允許 Managed Runtime 簽發 TLS 憑證,您必須建立 CNAME 記錄請聯絡 Salesforce 客戶支援,提供您所需的憑證網域。然後,Salesforce 會為您提供憑證的詳細驗證 CNAME 記錄。支援萬用字元憑證,像是 *.example.com

Staging 和 Production 環境支援使用自訂網域推出。所有其他環境 (例如開發環境) 目前還限制為繼續使用預設的 mobify-storefront.com 網域。

您必須在收到詳細資訊後的 24 小時內建立所提供的驗證 DNS CNAME 記錄。參考樣式:

使用第三方 CDN 時,就不需要此步驟。

staging.example.com 的存留時間 (TTL) 縮短為一分鐘。縮短 TTL 能加速 DNS 移轉流程,若有出錯,也能讓您快速回復。

您可以使用 dig 命令來驗證 TTL:

使用第三方 CDN 時,就不需要此步驟。

設定環境來從主機 staging.example.com 接收流量。

使用 Managed Runtime API 更新環境的 ssr_external_domainssr_external_hostname 設定:

在此步驟後,環境將無法在其 mobify-storefront.com 網域存取。

使用 cURL 命令來發出 DNS 詐騙要求,確認新的設定已生效:

使用第三方 CDN 時的移轉流程與使用 Managed Runtime CDN 時不同。

針對此選項,您必須設定 CDN 指向 Managed Runtime 來源,而非現有的 CDN 來源。請參閱您的 CDN 供應商文件以取得詳細指引。

新增外部主機名稱 ({{project}}-{{environment}}.mobify-storefront.com),作為第三方 CDN 的來源。確認 CDN 已設定為:

  • 設定 Host 標頭以符合來源 {{project}}-{{environment}}.mobify-storefront.com
  • 轉傳要求方法
  • 轉傳路徑 (包括查詢字串)
  • 轉傳標頭
  • 轉傳本文
  • 遵循 HTTP 快取標頭。

可以考慮新增一個處理常式來反映 HTTP 要求,以驗證 CDN 設定是否正確:

還可以考慮新增一個 httpbin.org/anything 的 Proxy,來驗證傳遞給 Proxy 的標頭是否能正確傳送。

針對此選項,您必須執行 DNS 移轉,將網域從舊來源指向 Managed Runtime CDN。

Salesforce 支援人員會提供遵循格式的穩定網域 {{project}}-{{environment}}-cdn.mobify-storefront.com{{project}} 是您的專案 ID,而 {{environment}} 是您的環境 ID。

staging.example.com 更新 DNS CNAME 記錄為 example-staging-cdn.mobify-storefront.com

開啟網頁瀏覽器並前往 staging.example.com

恭喜,您已完成推出!🥳

為 Staging 網站完成這些指示之後,您可以對 Production 網域和 Production 環境重複同一流程。

自此,Customer Success Group 會協助您監控網站流量,以確保推出成功。目標是確保推出過程中一切皆如預期!

在推出後,擁有 Signature Success Plan 的客戶將會收到主動式網站監控服務。若要利用這種加強的監控服務,您必須將您的環境標示為 production。如需更多資訊,請參閱 Managed Runtime 概觀中有關環境的部分。

  • ssr_external_hostname 目標設定可控制環境要從哪個主機接收流量。若要求的 HTTP Host 標頭不符合此值,要求會失敗並傳回 403 錯誤。
  • Salesforce 目前不支援擁有如 example.com (沒有 www 子網域) 這種純網域的網店 URL。如欲使用純網域,您必須設定伺服器,將要求從純網域重新導向至您的 CNAME。