ハイブリッド実装のための CDN API
段階的なヘッドレスロールアウトは、Storefront Reference Architecture (SFRA) やコンポーザブルストアフロントなどの複数のストアフロントの技術を使用して、単一の買い物体験を提供する手法です。
埋め込み CDN (eCDN) ゾーンは、トラフィックを SFRA と Managed Runtime の両方に同時にルーティングできるため、コンポーザブルストアフロントを段階的にロールアウトできます。
このガイドでは、Commerce API CDN ゾーンを使用してトラフィックを Managed Runtime にルーティングする方法について説明します。また、Business Manager を使用してトラフィックを Managed Runtime にルーティングすることもできます。Business Manager での MRT ルーティングルールの構成
このガイドのコマンドを実行する前に、プレースホルダーを実際の値に置き換えてください。プレースホルダーは $PLACEHOLDER
の形式になっています。
このガイドでは、本番 URL がhttps://www.example.com
のサンプルストアフロントを使用します。
このページの一部のリンクにアクセスできるのは、既存のお客様のみです。Commerce Cloud リポジトリにアクセスする方法については、Salesforce Commerce Cloud GitHub リポジトリとアクセスを参照してください。
- Admin API の認可についてよく理解しておきます。
- スコープ
sfcc.cdn-zones.rw
をもつ Account Manager API クライアントが必要です。 - Managed Runtime で使用する eCDN ゾーンのゾーン ID を把握しておく必要があります。この情報を取得するには、CDN Zones API の getZonesInfo のエンドポイントを使用します。
- updateSecuritySettings を使用して、ゾーンで
alwaysUseHttps
を有効にします。Managed Runtime は HTTPS 経由のトラフィックのみをサポートします。 - SLAS API クライアントの
redirect_uri
をゾーンを含めるように設定します。 - 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 から取得したコンテンツが返されます。
-
次のルーティング シナリオがサポートされています。
-
1 つの MRT 環境にマップされた 1 つのホスト名:
- 例:
http.host eq \"www.example.com\"
→example-production.mobify-storefront.com
- 例:
-
1 つの MRT 環境にマップされた複数のホスト名:
- 例:
http.host in {\"www.example.com\" \"prod.example.com\" \"us.example.com\"}
→example-production.mobify-storefront.com
- 例:
-
-
次のルーティング シナリオは、現在サポートされていません****。
- 異なるパスに基づいて複数の MRT 環境にマップされた 1 つのホスト名
式は次の基準に基づいて検証されます。
http.host
は、一度だけ出現し、その後にeq
演算子またはin
演算子が続く必要があります。使用例については、上記を参照してください。- ホスト名はゾーンと一致する必要があります。つまり、eCDN ゾーンには、指定されたホスト名を対象とする有効な証明書が必要です。
- 以下のフィールドがサポートされます。
http.host
http.request.uri.path
http.request.uri
http.cookie
- 式の長さは最大 3072 文字です。
- 最大 100 の式を 1 つのゾーンに関連付けることができます。
段階的なロールアウトを続行すると、より多くのリクエストを Managed Runtime にルーティングできます。
ルーティング式を変更するには、getMrtRule を使用して、更新する式に関連付けられたルールセットとルールの ID を取得します。
次に、updateMrtRule を使用して式を更新します。
既存の管理対象ランタイム環境にルーティング規則を追加するには、updateMrtRulesetを使用して、mrtHostname
および追加のルーティング式を指定します。
新しい管理対象ランタイム環境のルーティング規則を追加するには、createMrtRulesエンドポイントを使用し、新しいmrtHostname
値を指定します。
既存のルールを更新して別のマネージ ランタイム環境にルーティングするには、updateMrtRulesetを使用して、ルーティング先のoldMrtHostname
と (新しい) mrtHostname
を指定します。
サードパーティの CDN に切り替える場合、または eCDN から MRT への特定のパスをルーティングする必要がなくなった場合は、ルーティングを無効にすることができます。
ルーティングを無効にするには、getMrtRulesを使用して、削除する構成の ID を取得します。
次に、マネージ ランタイムのルーティング規則を削除するには、deleteMrtRuleを使用して、getMrtRulesによって返される適切な ID を渡します。
すべてのマネージ ランタイム ルーティング規則を削除する場合は、deleteMrtRulesetを使用します。
段階的ロールアウトを完了する場合、または新しいサイトを立ち上げる場合は、単一の式を使用してゾーンのすべてのトラフィックを Managed Runtime にルーティングすることを選択できます。
eCDN を利用できない環境では、composable-hybrid-dev-server
を使用して eCDN ルーティングをシミュレートします。