分階段無頭式部署的 CDN API

分階段無頭式部署用到多種 Storefront 技術,例如 Storefront Reference Architecture (SFRA) 和 Composable Storefront,來提供單一購物體驗。

嵌入式 CDN (eCDN) 區域可將流量同時路由至 SFRA 和 Managed Runtime,讓您逐步部署出 Composable Storefront。

本指南說明如何使用 Commerce API CDN 區域將流量路由至 Managed Runtime。

  1. 熟悉 Admin API 的授權
  2. 您必須擁有 sfcc.cdn-zones.rw 範圍的 Account Manager API 用戶端。
  3. 您必須知道要搭配 Managed Runtime 使用的 eCDN 區域的區域 ID。若要取得此資訊,請使用 CDN Zones API 的 getZonesInfo 端點。
  4. 使用 updateSecuritySettings 啟用該區域的 alwaysUseHttpsManaged Runtime 僅支援 HTTPS 流量。
  5. 設定您 SLAS API 用戶端的 redirect_uri 以納入該區域。
  6. 如果您已限制某些 IP 才能存取您的 Managed Runtime 環境,請將 eCDN 使用的 Cloudflare IP 加入那些允許的 IP 之中。

藉由 createMrtRules 端點,您可以建立規則,將流量路由至 Managed Runtime 環境:

讓我們檢驗一下要求本文中提供的資料。

mrtHostname 的值為 Managed Runtime 環境的網域,用於流量路由。它必須參照到裝載於 mobify-storefront.com 網域的 Managed Runtime 環境。如果提供的值已被現有的規則所使用,則要求會失敗。

Managed Runtime 是唯一受支援的路由目的地。

expressions 的值是 Cloudflare 規則表達式的陣列,控制要將哪些要求路由至 Managed Runtime。對大多數實作而言,單一路由表達式已經足夠了。

除了所提供的表達式,也會使用下列預設的路由規則:

路由變更會立即套用,瀏覽至符合表達式的 URL 時,會傳回從 Managed Runtime 擷取的內容。

表達式根據以下準則進行驗證:

  • http.host 必須剛好只出現一次,且後面必須接著 eq 運算子。值必須符合區域。
  • 支援下列欄位:
    • http.host
    • http.request.uri.path
    • http.request.uri
    • http.cookie
  • 表達式的最大長度為 3072 個字元。
  • 一個區域最多可以有 100 個表達式與其相關聯。

當您繼續分階段部署時,您可以將更多要求路由至 Managed Runtime。

若要修改路由表達式,請使用 getMrtRule 取得與您欲更新的表達式相關聯的規則集和規則的 ID。

接下來,使用 updateMrtRule 更新表達式:

若要停用路由,請使用 getMrtRule 取得規則集 ID:

然後,使用 deleteMrtRuleset 移除該規則集的 Managed Runtime 路由:

當您完成分階段部署,或如果您要推出新網站,您可以選擇使用單一表達式,將一個區域的所有流量路由至 Managed Runtime:

在 eCDN 不可用的環境中,請使用 composable-hybrid-dev-server 來模擬 eCDN 路由。

若要存取程式碼,您需要存取 Salesforce Commerce Cloud GitHub