リクエストの標準化
AEM as a Cloud Service のトラフィックフィルタールールを使用してリクエストを変換し、標準化する方法について説明します。
リクエストを変換する理由とタイミング
リクエスト変換は、受信トラフィックを標準化し、不要なクエリパラメーターやヘッダーによって発生する不要な分散を減らす場合に役立ちます。この手法は、次の目的でよく使用されます。
- AEM アプリケーションに関連のないキャッシュバスティングパラメーターを削除することで、キャッシュの効率を向上させる。
- リクエストの並べ替えを最小限に抑え、不要な処理を軽減することで、オリジンを不正使用から保護する。
- リクエストを AEM に転送する前に、削除または簡素化する。
これらの変換は通常、CDN レイヤーで適用され、特にパブリックトラフィックを処理する AEM パブリッシュ層に適用されます。
前提条件
続行する前に、トラフィックフィルタールールと WAF ルールの設定方法チュートリアルの説明に従って必要な設定が完了していることを確認します。また、AEM WKND Sites プロジェクトのクローンを作成し、AEM 環境にデプロイしておきます。
例:アプリケーションで不要なクエリパラメーターの設定解除
この例では、キャッシュの断片化を減らすために、search と campaignId 以外のすべてのクエリパラメーターを削除するルールを設定します。
- 次のルールを WKND プロジェクトの
/config/cdn.yamlファイルに追加します。
kind: "CDN"
version: "1"
metadata:
envTypes: ["dev", "stage", "prod"]
data:
requestTransformations:
rules:
# Unset all query parameters except those needed for search and campaignId
- name: unset-all-query-params-except-those-needed
when:
reqProperty: tier
in: ["publish"]
actions:
- type: unset
queryParamMatch: ^(?!search$|campaignId$).*$
-
変更をコミットして Cloud Manager Git リポジトリにプッシュします。
-
以前に作成した Cloud Manager 設定パイプラインを使用して、変更を AEM 環境にデプロイします。
-
WKND サイトのページ(例:
https://publish-pXXXX-eYYYY.adobeaemcloud.com/us/en.html?search=foo&campaignId=bar&otherParam=baz)にアクセスして、ルールをテストします。 -
AEM ログ(
aemrequest.log)では、リクエストがhttps://publish-pXXXX-eYYYY.adobeaemcloud.com/us/en.html?search=foo&campaignId=barに変換され、otherParamが削除されていることが確認できます。