推出您的網店
這份指南說明如何推出新的 PWA Kit 網店,使其可以從正式、公開的網址存取。您有兩種選擇來推出您的 PWA Kit 網店,並將流量路由到該處:
- 使用第三方 CDN,像 Cloudflare 或 Akamai。
- 使用 Managed Runtime 提供的 CDN。
在這份指南中,我們使用了擁有以下屬性的網店作為範例:
- Production URL:
https://www.example.com
- 專案 ID:
example
- 環境:
staging
和production
在這份指南中,「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 User 或 Managed 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 API 或 Runtime 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_domain
和 ssr_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
目標設定會控制目標從哪個主機接收流量。若要求的 HTTPHost
標頭不符合此值,要求會失敗。- Salesforce 目前不支援擁有如
example.com
(沒有www
子網域) 這種純網域的網店 URL。如欲使用純網域,您必須設定伺服器,將要求從純網域重新導向至您的 CNAME。
如果需要新增條件式邏輯來根據使用的網域改變您網站的行為,那麼當您的本機開發伺服器可以使用自訂網域時,會更容易測試此邏輯。為什麼需要新增這種邏輯?比方說,設想一下您需要根據網域來查詢不同的 SLAS 用戶端 ID。
若要使用自訂網域來執行本機開發伺服器:
- 修改本機電腦的 DNS,將您的自訂網域解析為
127.0.0.1
(localhost)。 - 編輯
ssr.js
。 - 在傳遞給
runtime.createHandler
的options
中,將連接埠設為80
。 - 執行
EXTERNAL_DOMAIN_NAME=www.example.com npm start
,將example.com
的值替換為您的自訂網域。在連接埠80
上執行伺服器可能需要管理權限。
從您瀏覽器發送到自訂網域的要求現在已經能夠解析,並路由到您的本機開發伺服器了!
偵錯愉快!😊