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