推出您的網店

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

  1. 使用第三方 CDN,像 Cloudflare 或 Akamai。
  2. 使用 Managed Runtime 提供的 CDN。

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

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

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

從 Mobify 改為 Salesforce 的品牌重塑過程仍在進行中。Mobify 品牌名稱仍會出現在用來代管網店的 mobify-storefront.com 網域和 Managed Runtime API 使用的 cloud.mobify.com 網域中。雖然新的 Salesforce 網域最終將會取代這些 Mobify 網域,不過對於 Mobify 網域的支援仍會持續。

Managed Runtime 支援在 PWA Kit 網店前使用第三方 CDN。首先,使用預設設定來部署您的環境。接著,新增您的網店 {{project}}-{{environment}}.mobify-storefront.com,作為第三方 CDN 的來源。確認 CDN 是否已設為轉送以下內容:要求方法、路徑 (包括查詢字串)、標頭、本文。也請確定 CDN 已設為遵循 HTTP 快取標頭。

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

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

我們會以三個階段說明如何「上線」:準備、在 Staging 環境中推出、在 Production 環境中推出。

在您開始之前

這份指南假設您擁有 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 金鑰視為密碼,因為這能代表您允許指令碼執行操作。

第 1 階段:準備

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

1. 建立 Staging 環境

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

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

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

2. 讓您的 API 公開可用

您的網店程式碼必須要能存取您的 B2C Commerce 執行個體,因此您的 API 必須為公開可用。

想像一下 www.example.com 目前解析至 B2C Commerce 執行個體。在推出後,www.example.com 將會解析至 mobify-storefront.com 網域。您的網店程式碼需要方法來處理與 B2C Commerce 執行個體關聯的 API。您可以選擇讓 API 在 api.example.com 上可用,並更新環境的 Proxy 設定來使用該網域。如需更多資訊,請參閱我們的 Proxy 要求指南。

3. 允許 Salesforce 發行 TLS 憑證

若要允許 Salesforce 為您的網域發行 TLS 憑證,您必須建立 CNAME 記錄聯絡 Salesforce 客戶支援,請他們提供必要的詳細資訊來為網店建立 CNAME 記錄。

在收到詳細資訊後的 24 小時內建立 CNAME 記錄。CNAME 記錄參考樣式:

第 2 階段:在 Staging 環境中推出

永遠先在 Staging 環境中測試推出流程。

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

1. 縮短 DNS CNAME 的存留時間 (TTL)

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

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

2. 設定您的環境

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

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

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

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

3. 執行 DNS 移轉

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

恭喜,您已完成測試推出!🥳

第 3 階段:在 Production 環境中推出

當您準備好要推出後,請完成與測試推出相同的步驟,但這次是在 production 環境和網域上進行。

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

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

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

如果需要新增條件式邏輯來根據使用的網域改變您網站的行為,那麼當您的本機開發伺服器可以使用自訂網域時,會更容易測試此邏輯。為什麼需要新增這種邏輯?比方說,設想一下您需要根據網域來查詢不同的 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 上執行伺服器可能需要管理權限。

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

偵錯愉快!😊