段階的なヘッドレスロールアウト用の CDN API

段階的なヘッドレスロールアウトは、Storefront Reference Architecture (SFRA) やコンポーザブルストアフロントなどの複数のストアフロントの技術を使用して、単一の買い物体験を提供する手法です。

埋め込み CDN (eCDN) ゾーンは、トラフィックを SFRA と Managed Runtime の両方に同時にルーティングできるため、コンポーザブルストアフロントを段階的にロールアウトできます。

このガイドでは、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 を使用して、ゾーンで alwaysUseHttps を有効にします。Managed Runtime は HTTPS 経由のトラフィックのみをサポートします。
  5. SLAS API クライアントの redirect_uri をゾーンを含めるように設定します。
  6. Managed Runtime 環境へのアクセスを許可する IP のセットを制限している場合は、eCDN によって使用される CloudFlare IP を、許可される IP のセットに追加します。

createMrtRules エンドポイントを使用すると、トラフィックを Managed Runtime 環境にルーティングするルールを作成できます。

リクエストボディで提供されたデータを調べてみましょう。

mrtHostname の値は、トラフィックルーティング用の Managed Runtime 環境のドメインです。これは、mobify-storefront.com のドメインでホストされている Managed Runtime 環境を参照する必要があります。指定された値が既存のルールで使用されている場合、リクエストは失敗します。

サポートされるルーティング先は Managed Runtime のみです。

expressions の値は、どのリクエストが Managed Runtime にルーティングされるかを制御する Cloudflare ルール式の配列です。ほとんどの実装において、単一のルーティング式で十分です。

提供された式に加え、次のデフォルトのルーティングルールが使用されます。

ルーティングの変更はすぐに適用され、式に一致する URL に移動すると、 Managed Runtime から取得したコンテンツが返されます。

式は次の基準に基づいて検証されます。

  • http.host は 1 回のみ出現し、その後に eq 演算子が続く必要があります。ゾーンに一致する値を指定してください。
  • 以下のフィールドがサポートされます。
    • http.host
    • http.request.uri.path
    • http.request.uri
    • http.cookie
  • 式の長さは最大 3072 文字です。
  • 最大 100 の式を 1 つのゾーンに関連付けることができます。

段階的なロールアウトを続行すると、より多くのリクエストを Managed Runtime にルーティングできます。

ルーティング式を変更するには、getMrtRule を使用して、更新する式に関連付けられたルールセットとルールの ID を取得します。

次に、updateMrtRule を使用して式を更新します。

ルーティングを無効にするには、getMrtRule を使用してルールセット ID を取得します。

次に、deleteMrtRuleset を使用して、そのルールセットの Managed Runtime のルーティングを削除します。

段階的ロールアウトを完了する場合、または新しいサイトを立ち上げる場合は、単一の式を使用してゾーンのすべてのトラフィックを Managed Runtime にルーティングすることを選択できます。

eCDN を利用できない環境では、composable-hybrid-dev-server を使用して eCDN ルーティングをシミュレートします。

コードにアクセスするには、Salesforce Commerce Cloud GitHub にアクセスする必要があります。