cdn.ymlを使用した特定のドメインへのCDN パイプラインルールのスコーピング
意図しないCDN ルールは、明示的にスコープが設定されていない場合、同じ環境内の他のドメインに影響を与える可能性があります。 この記事では、Adobe Experience Manager(AEM)Cloud ServiceのCDN パイプラインルールを、cdn.ymlにホスト条件を追加して、特定のドメインに制限する方法について説明します。
説明 description
環境
Adobe Experience Manager(AEM)Cloud Service
問題/症状
Cloud ManagerのCDN パイプラインをcdn.yml ファイル経由で使用して、下位環境(DEV)の従来のDynamic Media配信エンドポイントをブロックする場合。 次のYAML設定は、パス /adobe/dynamicmedia/deliver/に一致するリクエストをブロックし、410 Gone応答を返します。
rules:
- name: block-legacy-delivery-endpoint
when:
allOf:
- reqProperty: path
matches: /adobe/dynamicmedia/deliver(/.*)?$
actions:
- type: respond
status: 410 reason: "Legacy Dynamic Media endpoint is deprecated"
このルールが環境内のすべての設定済みドメインに適用されるかどうか、および目的のVCR ドメインのみに影響するように制限する方法を確認する必要があります。
- 従来のDynamic Media エンドポイントへのリクエストは、期待どおりにブロックされます。
- OpenAPI Dynamic Media URLへのリクエストは、を通じて許可されます。
- ルールが特定のドメインにのみ適用され、環境内のすべてのドメインに適用されないようにする必要があります。
原因
デフォルトでは、cdn.ymlのCDN ルールは、明示的にスコープが設定されていない限り、すべてのドメインに適用されます。 ホスト条件を追加すると、ルールが目的のドメインのみに影響します。
解決策 resolution
問題を修正するには:
-
cdn.ymlの現在のCDN ルール設定を確認してください。- ルールは、パス
/adobe/dynamicmedia/deliver/に基づいて要求と一致します。 - デフォルトでは、このルールは、さらにスコープが設定されていない限り、環境内で設定されたすべてのドメインに適用されます。
- ルールは、パス
-
ルールを特定のドメインにスコープします。
- ルールの
whenセクションにドメイン条件を追加します。 - 次の構文の例を使用します。
code language-none - name: block-legacy-delivery-endpoint when: allOf: - reqProperty: host matches: your-vcr-domain\.example\.com$ - reqProperty: path matches: /adobe/dynamicmedia/deliver(/.*)?$ actions: - type: respond status: 410 reason: "Legacy Dynamic Media endpoint is deprecated"your-vcr-domain.example.comを、ドメイン設定で設定された実際のドメイン名に置き換えます。
- ルールの
-
更新された
cdn.yml設定をCloud Managerを使用してデプロイします。- リポジトリに変更をコミットしてプッシュします。
- Cloud Manager パイプラインを通じてデプロイして、ルールを適用します。
-
ターゲット環境でルールを検証します。
- スコープ対象ドメインのレガシーエンドポイントへのリクエストをテストして、ブロックされていることを確認します。
- 他のドメイン上の同じエンドポイントへのリクエストをテストして、それらが影響を受けないことを確認します。
- OpenAPI Dynamic Media URLに影響がないことを確認します。
recommendation-more-help
experience-cloud-kcs-help-kbarticles