News: PWA Kit 3.0.0 現已推出,並支援 Node 18。升級您的專案和環境,維持功能運作正常。您 將不能 使用舊版本來部署網站。

Managed Runtime 概觀

Managed Runtime 提供基礎架構來部署、代管、監控您的 PWA Kit 網店。

Managed Runtime 僅支援從 PWA Kit 範本建立的應用程式。可用範本的原始程式碼可在 GitHub 的 PWA Kit 儲存庫template-* 資料夾中找到。

這份指南包含 Managed Runtime 的幾個主要部分,以及如何進行存取。

在使用 Managed Runtime 和 Runtime Admin 之前,必須啟用它們,而且您必須要求其存取權。要為您的組織啟用 Managed Runtime 和 Runtime Admin,請聯絡您的 Salesforce 客服團隊。要進行存取,請要求您的 Commerce Cloud 管理員使用 Account Manager 將以下任一角色加到您的帳戶:Managed Runtime UserManaged Runtime Admin

環境」一詞用於描述 Managed Runtime 代管的特定網店的所有雲端基礎架構和設定值。環境可將您的正式網店與專為其他目的 (例如開發或測試) 而部署的其他網店區分開來。

Managed Runtime API 中,環境被稱為「目標」,但兩個詞指的是同一概念。

由於環境在可自動調整規模的高效微服務中執行,因此您可以根據需求來建立任意數量的環境,而無需額外費用。舉例來說,您可以建立一個短期環境,專門用於進行靈敏的單一短期開發衝刺,或該短期衝刺中的單個使用者故事。當您不再需要某個環境時,我們建議您將其刪除。

標示為 Production 的環境會優先由 Salesforce 的支援團隊監控。對於 Production 環境,您也可以使用 Log Center 進行偵錯。要將環境標示為 Production,您有兩種選擇:

  1. 使用 Runtime Admin 工具。如需建立環境或編輯現有環境的逐步說明,請參閱管理指南的環境章節。
  2. 使用 Managed Runtime API。projects_target_createprojects_target_partial_update 端點都具有 is_production 參數。要使用這些端點將環境標示為 Production,請將 is_production 設為 true

根據預設,您最多可以將 10 個環境標示為 Production。要提高數量上限的話,請聯絡支援人員。

在環境中執行的網店程式碼稱為「套件」。使用 PWA Kit 中包含的開發人員工具,以產生套件並將其推送到 Managed Runtime。

套件是您的程式碼在特定時間點的快照。它是 不可變 的:套件在建立後,就無法變更。擁有完整且正確的套件歷史記錄,可以更輕鬆地排除部署的故障問題。

推送套件後,您可以使用 Runtime Admin 或 Managed Runtime API 來將套件指派為「已部署」。每個專案可以擁有多個套件,但每個環境只能有一個指派為已部署的套件。您可以隨時變更要將哪一個套件指派為已部署。如需更多資訊,請參閱推送和部署套件

為了協助您管理多個環境,每個環境也會屬於一個「專案」,而每個專案都屬於一個「組織」。一個組織可以包含多個網店的多個專案,而每個專案可以包含多個環境。Managed Runtime 的使用者可以屬於多個組織,以分隔不同的工作流。

每個組織總共可以擁有最多 100 個環境,以及最多 10 個 Production 環境。若您需要提高這些上限,請聯絡您的 Salesforce 支援代表。

組織和使用者組織成員資格是由 Account Manager 中的設定所決定。使用者可以作為成員或管理員,歸屬於組織。成員只能與自己有被指派到專案角色的 Managed Runtime 專案進行互動。管理員可以與組織內的所有專案進行互動。

若要指派管理組織成員資格給使用者,請聯絡 Salesforce Support。

使用者可擁有以下 Managed Runtime 專案功能:

  • 瀏覽: 在 Runtime Admin 中檢視專案。
  • 管理重新導向: 為專案管理重新導向。請參閱重新導向文件來瞭解更多。
  • 部署: 部署新套件或還原部署至較舊的套件。
  • 管理團隊: 檢視、新增、邀請、移除、編輯專案團隊成員的角色。
  • 存取記錄檔: 追蹤所有環境的記錄檔。

每位使用者將被指派一個專案角色,決定他們擁有什麼樣的功能權限。(每位使用者只能擁有 一個 角色。)專案角色可以指派給組織內的任何使用者。

以下表格顯示了每個角色的相關功能權限:

角色瀏覽管理重新導向部署管理團隊存取記錄檔
管理員
開發人員不可
行銷人員不可不可不可
唯讀不可不可不可不可

在每個 Managed Runtime 環境中,已發佈套件中的 React 應用程式會在 Node.js 環境中執行。為了回應頁面要求並轉譯結果,我們使用 Express 網路架構,並由 PWA Kit 的轉譯路由系統提供支援。React、Node、Express 三者的組合,我們稱之為「應用程式伺服器」。(雖然就技術上而言,此應用程式伺服器執行的是「無伺服器」技術。)應用程式伺服器經過最佳化,可在提供低運算成本、高可用性、快速轉譯、大規模擴展能力的雲端基礎架構上執行。

因為 PWA Kit 的轉譯和路由系統可處理本機開發環境和 Managed Runtime 環境之間的差異,所以您的程式碼在部署時會以可預測的方式執行。這樣的可預測性能夠鼓勵您的開發團隊更頻繁地部署套件,增進團隊生產力。

應用程式伺服器目前支援傳輸層安全性 (TLS) 1.2 及以上版本。

在應用程式伺服器上執行的程式碼可以存取以下環境變數:

  • DEPLOY_TARGET:環境的 ID。
  • EXTERNAL_DOMAIN_NAME:環境中設定的網域名稱。
  • MOBIFY_PROPERTY_ID:環境所屬專案的 ID。

支援著應用程式伺服器的是幾個邊緣服務,包括:

  • 網路應用程式防火牆 (WAF),保護您的環境免受攻擊
  • Proxy 伺服器,加速 API 要求
  • 內容傳遞網路 (CDN),快取要求並加速頁面載入
  • 處理要求和重新導向的邊緣函式

我們的 Proxy 要求指南提供了 Proxy 伺服器和 CDN 的詳細資訊。我們的最大化您的快取命中率指南介紹了稱為要求處理器的邊緣函式。

Managed Runtime 的邊緣服務經過策略考量,分散在我們的公有雲端基礎架構上。每個服務都盡可能位於最接近使用者的位置,以提供更快的效能。

為了管理您的組織、專案、環境和套件設定,我們提供以下兩種不同的工具:

  1. Managed Runtime Admin,網頁式 UI。
  2. Managed Runtime API,提供與網頁式工具相同的功能及一些額外功能的 REST API。

請使用 Runtime Admin 工具處理例行任務,例如將新的程式碼套件部署至環境。在需要程式設計控制時可使用 API,例如在持續整合指令碼中自動建立環境。

管理工具可讓您自行進行許多設定,包括:

  • 允許的 IP 位址
  • 允許的存取控制標頭
  • 目前部署的套件
  • 部署區域
  • Proxy
  • 重新導向
  • 使用者權限
  • Production 環境旗標

管理工具的存取權限由 Account Manager 角色和 API 金鑰控制。在持續整合 (CI) 和持續傳遞 (CD) 流程方面,您的組織通常會佈建專屬的機器人使用者和其各自的 API 金鑰。

有趣小知識:跟您的網店一樣,Runtime Admin 工具是部署在 Managed Runtime 的無頭式 React 應用程式。

建置網店時,請牢記 Managed Runtime 環境的以下限制:

  • 環境僅會回應 HTTP Host 標頭符合 Runtime Admin 中設定的外部主機名稱的要求。
  • / 路徑只接受 HTTP GET 要求。
  • 要求和回應大小不得超過 6 MB。
  • HTTP 要求列和標頭的大小上限為 10240 位元組。超出此大小的要求會傳回 HTTP 413 Content Too Large
  • 預設不支援 Cookie,包括 HTTP 要求 Cookie 和 HTTP 回應 Set-Cookie 標頭。只要在具有 projects_target_partial_update 端點的環境中設定 allow_cookies 屬性,即可啟用它們。您也可以在 Runtime Admin環境設定中啟用 Cookie。PWA Kit 3.1.0 或更高版本支援 Cookie。請參閱使用 Cookie 進行個人化
  • 不支援標頭以 _ 開頭的要求。這些要求將被捨棄。
  • 源自 Managed Runtime 環境的 HTTP 要求不使用固定 IP 位址。若要允許來自應用程式伺服器的要求,請使用 EC2AWS IP 範圍。若要允許來自 Proxy 的要求,請使用 CLOUDFRONT_ORIGIN_FACING
  • 路徑前綴 /mobify 保留用於受管的端點。這些端點包括:
    • /mobify/ping:當環境運作正常時,會傳回 HTTP 200 回應代碼。
    • /mobify/redirect/$path:傳回與 projects_target_redirect_retrieve 類似的回應。
    • /mobify/proxy/$name:從 Proxy 傳回回應。
  • 若要繞過 CDN 快取,您可以使用 HTTP 要求標頭:x-mobify-cachebreaker: 1
  • 環境 IP 允許清單最多支援 250 個 IP 位址。此限制無法提高。
  • 環境存取控制標頭最多支援 2 個標頭。每個標頭:
    • 最多可包含 128 個字元
    • 可以是英數字元、-、_ 字元的組合
    • 請參閱存取控制標頭
  • 應用程式伺服器要求的執行時間限制為 20 秒。
  • 未處理的 Promise 拒絕會破壞應用程式轉譯。
  • 套件的大小上限為 400 MB,套件內所有 ssr_onlyssr_shared 檔案的大小上限為 249 MB。
  • 可以上傳及處理的靜態資產僅限下列內容類型:application/javascriptapplication/jsonimage/pngimage/gifimage/jpegimage/svg+xmlimage/webptext/csstext/plain 和字型 (ttfwoffwoff2otf 等等)。所有其他內容類型需要由外部系統處理。

Managed Runtime Proxy 擁有不同的限制

您可以訂閱更新訊息,以隨時在 Salesforce Status 上瞭解 Managed Runtime 服務的可用性。

這樣您就已經對 Managed Runtime 的主要部分有所認識了,該來實際使用看看囉!可以從推送和部署套件指南開始。

在使用 Managed Runtime 和 Runtime Admin 之前,必須啟用它們,而且您必須要求其存取權。要為您的組織啟用 Managed Runtime 和 Runtime Admin,請聯絡您的 Salesforce 客服團隊。要進行存取,請要求您的 Commerce Cloud 管理員使用 Account Manager 將以下任一角色加到您的帳戶:Managed Runtime UserManaged Runtime Admin