推出您的網店
本指南說明如何推出 PWA Kit 網店,使其可以從正式、公開的網址存取。您有三種選擇來推出您的 PWA Kit 網店,並將流量路由至該處:
- 使用第三方 CDN,像 Cloudflare 或 Akamai。
- 使用由 Salesforce Commerce Cloud 提供的嵌入式 CDN (eCDN)。想進一步瞭解如何使用 eCDN 將流量路由至 Managed Runtime,請參閱指南。
- 使用 Managed Runtime CDN。
在這份指南中,我們使用了擁有以下屬性的網店作為範例:
- Production URL:
https://www.example.com
- 專案 ID:
example
- 環境 ID:
staging
和production
要不要在 Managed Runtime 之上堆疊第三方 CDN 全由您做主。客戶可根據下列情況而選擇使用第三方 CDN:
- 原本就與其所選的 CDN 供應商存在合作關係,內部團隊已有設定和管理 CDN 的技能。
- 需要對超出 eCDN 或 Managed Runtime 提供的 CDN 功能進行額外控制。
想要降低處理成本、快速上市、對 CDN 要求有限的客戶可以使用 eCDN 或內建的 Managed Runtime CDN。
這份指南假設您擁有 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 金鑰視為密碼,因為這能代表您允許指令碼完成操作。
您需要存取您的 DNS 提供者以建立和更新 CNAME 記錄,也需要存取您的第三方 CDN 提供者 (若適用)。
在這份指南中,「Mobify」這個名字會出現數次。Mobify 是一間公司,開發了最終成為 PWA Kit 和 Managed Runtime 的技術。Salesforce 在 2020 年收購了 Mobify 及其所有技術。
Mobify 品牌名稱會出現在用來代管網店的 mobify-storefront.com
網域和 Managed Runtime API 使用的 cloud.mobify.com
網域中。
如果需要新增條件式邏輯來根據使用的網域改變您網站的行為,那麼當您的本機開發伺服器可以使用自訂網域時,會更容易測試此邏輯。為什麼需要新增這種邏輯?比方說,設想一下您需要根據網域來查詢不同的 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
上執行伺服器有時候可能需要管理權限。
從您瀏覽器發送到自訂網域的要求現在已經能夠解析,並路由到您的本機開發伺服器了!
推出環境的程序對於 Staging 和 Production 是相同的,唯一的差別在於網域名稱和使用的 Managed Runtime 環境。
我們強烈建議先在 Staging 環境中執行一次推出流程,再在 Production 環境中重複此流程。這些步驟應在啟動 PWA Kit 專案後立即完成,而且至少在發佈日期前兩週完成。
基於提供的指示,想像您將在 staging.example.com
推出網店,您在 Managed Runtime 的專案 ID 是 example
,而您的套件部署至名為 staging
的環境。
使用 Runtime Admin 或 Managed Runtime API 建立一個名為 staging
的環境來練習推出網店。
以下是使用 projects_target_create 端點來建立環境的要求範例。以您實際的專案 ID 字串取代要求中的 example
,並以您的 API 金鑰取代 $API_KEY
:
如需使用 Runtime Admin 來建立環境的指示,請參閱我們的 Managed Runtime 管理指南。
除了 B2C Commerce API 之外,許多 PWA Kit 實作還會向 OCAPI 或控制器發出要求。
您必須確保 Managed Runtime 可以存取您的 B2C Commerce 執行個體。
要讓 API 可供存取,通常必須設定 eCDN,以讓您的 B2C Commerce 執行個體在 ecom.example.com
這樣的替代網域上可用。如需更多資訊,請參考 eCDN 設定與配置文件。
設定網域後,請更新環境的 Proxy 設定,方能使用。如需更多資訊,請參閱我們的 Proxy 要求指南。
使用第三方 CDN 或 eCDN 時,就不需要此步驟。請參閱 CDN 供應商的文件以設定憑證。
如果您直接將流量路由至 Managed Runtime CDN,則 Managed Runtime 會代表您簽發及管理 TLS 憑證。
若要允許 Managed Runtime 簽發憑證,您必須:
- 選擇要用於網店的網域。例如
staging.example.com
、www.example.com
。支援*.example.com
等萬用字元網域。僅針對與 Staging 和 Production 環境相關的網域簽發特定網域憑證。 - 確保網域
CAA
記錄設定為允許 AWS 簽發憑證。 - 請聯絡 Salesforce 客戶支援,提供您所需的憑證網域。
- Salesforce 提供用於驗證網域擁有權的
CNAME
記錄。您必須在收到詳細資訊後的 24 小時內建立提供的記錄。
使用第三方 CDN 或 eCDN 時,就不需要此步驟。
將 staging.example.com
的存留時間 (TTL) 縮短為一分鐘。縮短 TTL 能加速 DNS 移轉流程,若有出錯,也能讓您快速回復。
您可以使用 dig
命令來驗證 TTL:
使用 Managed Runtime UI Access Control Settings (存取控制設定) 下方,或使用 access_control_header API 來設定環境的存取控制標頭。在此範例中,我們使用 API 來設定標頭值為 25pn5dec7f1c
的存取控制標頭。請參閱存取控制標頭。
設定環境來從主機 staging.example.com
接收流量。
使用 projects_target_partial_update API 更新環境的 ssr_external_domain
和 ssr_external_hostname
設定:
在此步驟後,環境將無法在其 mobify-storefront.com
網域存取。
使用 cURL 命令來發出 DNS 詐騙要求,確認新的設定已生效:
移轉過程會有所不同,取決於您使用的是第三方 CDN、eCDN 還是 Managed Runtime CDN。
將 Managed Runtime 環境設定為 CDN 的來源:
- 設定
Host
標頭以符合您的環境{{project}}-{{environment}}.mobify-storefront.com
- 轉傳要求方法
- 轉傳路徑 (包括查詢字串)
- 轉傳標頭
- 轉傳本文
- 透過 HTTPS 轉傳所有流量
- 遵循 HTTP 快取標頭
- 設定
x-sfdc-access-control
標頭值 (如果您的環境已有設定)
請參閱您的 CDN 供應商文件以取得詳細指引。
Managed Runtime 使用 HTTP Host
標頭將要求路由到環境。主機不正確的要求將被拒絕,並顯示 HTTP 403 Bad Request 回應。
請考慮新增處理常式以反映 HTTP 要求,並驗證 CDN 設定是否正確:
還可以考慮新增一個 httpbin.org/anything 的 Proxy,來驗證傳遞給 Proxy 的標頭是否能正確傳送。
若您遇到問題,請使用 PWA Kit 應用程式偵錯中說明的技術。
更新 eCDN 路由規則,以將流量路由到 Managed Runtime 環境。請查看 eCDN MRT 規則指南以瞭解更多資訊。
執行 DNS 移轉,將網域從舊來源指向 Managed Runtime CDN。
Managed Runtime CDN 網域遵循慣例的 {{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
目標設定可控制環境要從哪個主機接收流量。若要求的 HTTPHost
標頭不符合此值,要求會失敗並傳回 403 錯誤。- Salesforce 目前不支援擁有如
example.com
(沒有www
子網域) 這種純網域的網店 URL。如欲使用純網域,您必須設定伺服器,將要求從純網域重新導向至您的 CNAME。