使用cdn.yml將CDN管道規則範圍設定為特定網域
若未明確設定範圍,非預期的CDN規則可能會影響相同環境中的其他網域。 本文說明如何在cdn.yml中新增主機條件,以將Adobe Experience Manager (AEM) Cloud Service中的CDN管道規則限製為特定網域。
說明 description
環境
Adobe Experience Manager (AEM) Cloud Service
問題/症狀
您想要透過cdn.yml檔案使用Cloud Manager的CDN管道,在較低環境(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。
- 將網域條件新增至規則的
-
透過Cloud Manager部署更新的
cdn.yml設定。- 提交變更並將其推播到您的存放庫。
- 透過Cloud Manager管道部署以套用規則。
-
在目標環境中驗證規則。
- 測試對領域網域上舊版端點的請求,以確認其被封鎖。
- 測試對其他網域上相同端點的請求,以確保它們不受影響。
- 確認OpenAPI Dynamic Media URL不受影響。
recommendation-more-help
experience-cloud-kcs-help-kbarticles