使用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

若要修正問題:

  1. cdn.yml中檢閱目前的CDN規則設定。

    • 規則根據路徑/adobe/dynamicmedia/deliver/符合要求。
    • 根據預設,此規則會套用至環境中設定的所有網域,除非進一步設定範圍。
  2. 將規則範圍設定為特定網域。

    • 將網域條件新增至規則的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
  3. 透過Cloud Manager部署更新的cdn.yml設定。

    • 提交變更並將其推播到您的存放庫。
    • 透過Cloud Manager管道部署以套用規則。
  4. 在目標環境中驗證規則。

    • 測試對領域網域上舊版端點的請求,以確認其被封鎖。
    • 測試對其他網域上相同端點的請求,以確保它們不受影響。
    • 確認OpenAPI Dynamic Media URL不受影響。
recommendation-more-help
experience-cloud-kcs-help-kbarticles