Edge Private Cloud 4.53.01 中的变化

变更概述

Edge for Private Cloud 4.53.01 引入了多项变更,可增强平台的安全态势,并纳入了必需的软件和库的更新版本。这些变更会影响以下类型的政策:

您还可以使用变更检测工具来识别集群中可能因升级而导致中断的代理、共享流或其他制品。

变更的详细说明

本部分介绍了版本 4.53.01 中引入的更改,这些更改可能会在升级期间或升级后中断您的工作流程。此外,本课程还介绍了如何识别潜在的问题领域,以及缓解或解决问题的方法。

OAS(OpenAPI 规范)验证政策

上下文

OAS 验证政策可根据 OpenAPI 3.0 规范(JSON 或 YAML)中定义的规则验证传入的请求或响应。Edge for Private Cloud 4.53.01 增强了 OAS(OpenAPI 规范)政策,重点在于更严格、更准确地验证 API 响应正文。

变更

Edge for Private Cloud 4.53.01 在 OAS 政策验证 API 响应的方式方面引入了两项重要变更,可确保与您的 OpenAPI 规范更加一致:

  • 场景 1
    • 之前的行为:如果您的 OpenAPI 规范要求包含响应正文,但目标或上游政策的实际响应未包含响应正文,则该政策不会将其标记为验证错误。
    • 当前行为:在此场景中,政策现在会正确返回验证错误(例如:defines a response schema but no response body found),表明预期响应与实际响应不匹配。
  • 场景 2
    • 之前的行为:如果您的 OpenAPI 规范明确指出不应有响应正文,但目标或上游政策的实际响应包含正文,则该政策不会导致失败。
    • 当前行为:在此场景中,该政策现在会导致失败(例如:No response body is expected but one was found),从而确保回答严格遵循指定的架构。

应对措施

使用变更检测工具或通过手动审核来确定可能受升级影响的任何代理或共享流。查找是否存在以下任一情况的代理:

  • OAS 验证政策配置了设置为 responseSource 标记。
  • OAS 验证政策正在验证生成响应的任何其他政策的响应。

如果使用该工具,它将生成以下格式的输出:

组织 环境 制品名称 制品类型 修订版本 政策名称 政策类型 影响类型 影响特定字段 影响确定性 文档
org2 dev proxy2 proxy 4 oas-validateresponse OASValidation oas_content_type_handling Source=calloutresponse OAS 验证政策
org1 prod proxy3 sharedflow 1 oas-spec-validation OASValidation oas_content_type_handling Source=response OAS 验证政策

如需详细了解输出表中的列,请参阅了解工具输出部分。

确定代理或共享流程后,请确保响应和 OAS 规范在响应正文的存在与否方面保持一致。您可以使用标准 Apigee 跟踪来查看流量模式。如果目标间歇性地返回响应,请在将响应传递给 OAS 验证政策之前,使用其他政策验证该响应。

  • 如果您的 OAS 规范文件定义了响应正文,则目标政策或上游政策的响应必须始终提供一个响应正文。
  • 如果您的 OAS 规范文件未定义响应正文,则目标或上游政策不得发送响应正文。

在尝试升级到 Private Cloud 4.53.01 之前,请根据需要更新 OAS 验证政策或目标行为。您应先在非生产环境中验证此类已识别的工作流,以最大限度地降低在生产集群升级期间发生中断的风险。

JSON 路径

上下文

Edge for Private Cloud 4.53.01 针对各种政策中 JSON 路径表达式的使用方式引入了更改。JSONPath 表达式可用于 ExtractVariable 政策RegularExpressionProtection 政策数据遮盖等政策,以解析 JSON 内容或将值存储在变量中。JSONPath 表达式还可用于常规消息模板,以便在代理执行期间动态地将变量替换为值。新的 JSONPath 表达式和格式遵循最新的 JSON 表达式标准。

变更

请务必检查现有 API 代理/共享流中是否包含使用 JSONPath 表达式的政策。这包括但不限于 ExtractVariables 政策、RegularExpressionProtection 政策或任何使用 JSONPath 的消息模板政策。

以下 JSON 输入用于说明更改:

{
  "store": {
    "book": [
      {"category": "reference", "author": "Nigel Rees", "price": 8.95},
      {"category": "fiction", "author": "Evelyn Waugh", "price": 12.99},
      {"category": "fiction", "author": "Herman Melville", "price": 8.99}
    ],
    "bicycle": {
      "color": "red",
      "book": [
        {"author": "Abc"}
      ]
    }
  }
}
  1. 针对对象值的 JSONPath 通配符 [*] 行为变更

    当使用 [*] 通配符访问 JSON 对象的所有直接值时,其行为已发生变化。之前,$.object[*] 会返回封装在单个 JSON 对象中的立即值。使用更新后的库,输出现在是一个包含这些值的数组。

    例如 $.store[*]

    之前的行为
    {
      "bicycle": {
        "color": "red",
        "book": [{"author": "Abc"}]
      },
      "book": [
        {"price": 8.95, "category": "reference", "author": "Nigel Rees"},
        {"price": 12.99, "category": "fiction", "author": "Evelyn Waugh"},
        {"price": 8.99, "category": "fiction", "author": "Herman Melville"}
      ]
    }
    
    当前行为
    [
      [
        {"category": "reference", "author": "Nigel Rees", "price": 8.95},
        {"category": "fiction", "author": "Evelyn Waugh", "price": 12.99},
        {"category": "fiction", "author": "Herman Melville", "price": 8.99}
      ],
      {
        "color": "red",
        "book": [{"author": "Abc"}]
      }
    ]
    
    操作

    将 JSONPath 表达式更改为仅定位父对象(例如:$.store),以直接定位之前检索到的项。

  2. 路径中的 JSONPath 尾随点 (.) 会导致错误

    JSONPath 表达式的验证更加严格。之前,如果路径以无效的尾随点结尾(例如 $.path.to.element.),系统会默默忽略该路径,并且如果前面的有效路径段匹配,查询仍会返回结果。在新版本中,此类格式错误的路径现在可以正确识别为无效,并会导致错误。

    例如 $.store.book.

    之前的行为
    [
      {"price":8.95,"category":"reference","author":"Nigel Rees"},
      {"price":12.99,"category":"fiction","author":"Evelyn Waugh"},
      {"price":8.99,"category":"fiction","author":"Herman Melville"}
    ]
    
    当前行为
    ERROR: com.jayway.jsonpath.InvalidPathException - Path must not end with a '.' or '..'
    

    任何使用带有意外尾随句点的 JSONPath 表达式的现有政策现在都会失败,并显示 InvalidPathException

    操作

    移除以句点结尾的所有 JSONPath 表达式中的末尾句点。例如,将 $.store.book. 更改为 $.store.book

  3. JSONPath 递归下降 (..) 输出结构变更

    使用 (..)(递归下降)运算符查找命名元素的所有出现位置时,结果的返回方式发生了变化。以前,所有找到的元素都会扁平化为单个列表。更新后的库现在会返回列表的列表,从而保留找到元素的原始分组结构,而不是返回单个扁平列表。

    例如 $..book

    之前的行为
    [
      {"price":8.95,"category":"reference","author":"Nigel Rees"},
      {"price":12.99,"category":"fiction","author":"Evelyn Waugh"},
      {"price":8.99,"category":"fiction","author":"Herman Melville"},
      {"author":"Abc"}
    ]
    
    当前行为
    [
      [
        {"category":"reference","author":"Nigel Rees","price":8.95},
        {"category":"fiction","author":"Evelyn Waugh","price":12.99},
        {"category":"fiction","author":"Herman Melville","price":8.99}
      ],
      [
        {"author":"Abc"}
      ]
    ]
    
    操作

    更新下游处理逻辑,以适应新的嵌套数组结构。您可能需要遍历外部 JSONArray,然后遍历每个内部 JSONArray 才能访问各个元素。

  4. 在多项选择或过滤后,JSONPath 索引返回空数组

    当在多项选择器(例如 [*])或过滤器 ([?(condition)]) 之后立即应用索引(例如 [0])时,行为会发生变化。以前,此类表达式会尝试从合并结果中选择指定索引处的项。在新版本中,这些表达式现在将返回一个空数组 ([])。

    例如 $.store.book[*][0]

    之前的行为
    {"category": "reference", "price": 8.95, "author": "Nigel Rees"}
    
    当前行为
    []
    
    操作

    如果需要先过滤,然后从过滤后的集合中获取特定项,请处理 JSONPath 返回的过滤后的数组(例如 $..book[?(@.category == 'fiction')]),然后从上一个结果中获取 [0]

  5. JSONPath 负数组切片输出更改

    新版本修改了负数组切片(例如:[-2:], [-1:])的行为。以前,当对数组应用负切片(表示数组末尾的元素)时,旧版本会错误地仅返回该切片中的单个项。新版本现在可以正确返回一个列表(数组),其中包含指定负范围内的所有元素。

    例如 $.store.book[-2:]

    之前的行为
    {"price":12.99,"category":"fiction","author":"Evelyn Waugh"}
    
    当前行为
    [
      {"category":"fiction","author":"Evelyn Waugh","price":12.99},
      {"category":"fiction","author":"Herman Melville","price":8.99}
    ]
    
    操作

    现在,必须更新下游处理逻辑,以遍历返回的 JSON 数组来获取所需的输出。

  6. JSONPath 更严格的前导点

    对于直接从根访问的元素,语法执行更加严格。当直接从根访问元素而不带前导点(例如:$propertyelement)时,此类语法现在会被视为错误,并会阻止代理部署。

    例如 $store

    {
      "bicycle": {
        "color": "red",
        "book": [{"author": "Abc"}]
      },
      "book": [
        {"price": 8.95, "category": "reference", "author": "Nigel Rees"},
        {"price": 12.99, "category": "fiction", "author": "Evelyn Waugh"},
        {"price": 8.99, "category": "fiction", "author": "Herman Melville"}
      ]
    }
    

    当前行为

    Proxy will fail to deploy.

    操作

    将 JSONPath 更改为包含点:$.propertyName(例如:$.store)。这样便可正确定位并检索相应值。

  7. 动态 JSONPath 表达式

    请密切关注 JSONPath 表达式本身由变量(例如 {myJsonPathVariable}{dynamicPath})提供的政策。这些变量的值也必须根据上述潜在的行为变更进行检查。

应对措施

使用变更检测工具或手动检查 API 代理,查找所述模式,以确定可能受升级影响的任何代理或共享流。如果您使用该工具,输出将标识受影响的代理或共享流、相关政策以及任何有问题的 JSON 路径,如下面的输出示例所示:

组织 环境 制品名称 制品类型 修订版本 政策名称 政策类型 影响类型 影响特定字段 影响确定性 文档
org1 dev proxy1 proxy 4 EV-ExtractRequestParams ExtractVariables 针对对象值的 JSONPath 通配符 [*] 行为变更 $.store[*] 针对对象值的 JSONPath 通配符 [*] 行为变更
org2 prod proxy2 sharedflow 1 EV-ExtractResponseParams ExtractVariables 路径中的 JSONPath 后缀点 (.) 现在会导致错误 $.store.book. 路径中的 JSONPath 尾随点 (.) 会导致错误
org3 dev proxy3 proxy 3 SC-FetchUserProfile ServiceCallout JSONPath 递归下降 (..) 输出结构变更 $..book JSONPath 递归下降 (..) 输出结构变更
org4 prod proxy4 sharedflow 2 RF-InvalidAuthToken RaiseFault 多项选择或过滤后的 JSONPath 索引现在会返回空数组 $.store.book[*][0] 在多项选择或过滤后,JSONPath 索引返回空数组
org5 测试 proxy5 proxy 6 SC-FetchProfileDetails ServiceCallout JSONPath 负数组切片输出更改 $.store.book[-2:] JSONPath 负数组切片输出更改
org6 prod proxy6 proxy 2 ML-LogRequestDetails MessageLogging JSONPath 更严格的前导点 $store JSONPath 更严格的前导点
org7 测试 proxy7 proxy 5 RF-InvalidTokenDetails RaiseFault 动态 JSONPath 表达式 myJsonPathVariable 动态 JSONPath 表达式

如需详细了解上述输出表格中的列,请参阅了解工具输出部分。

为了缓解这种情况,我们需要制定全面的策略。此过程包括确定合适的更新路径,并为检测到的 JSONPath 表达式应用必要的修复。

选择最适合您的升级途径方法:

  • 零停机时间迁移

    此策略涉及获取一个或多个新环境,以便您可以将单独的消息处理器节点连接到这些环境。此类消息处理器节点可以设置为安装 4.53.01,并具有采用新式 JSONPath 表达式的代理。这些节点可在升级期间使用,并在升级完成后停用。此策略可实现无缝升级,但需要临时购置额外的消息处理器节点,以支持平稳升级。详情如下:

    • 创建新环境,并向该新环境添加版本为 4.53.01 的新消息处理器节点
    • 将受影响代理的代理软件包上传到新环境,应用补救措施部分中说明的必要修复,并将更新后的代理软件包部署到新环境。
    • 将流量重定向到新环境,并从旧环境中取消部署受影响的代理。
    • 将原始消息处理器节点升级到 4.53.01。在原始环境中部署包含 JSONPath 修复的代理。
    • 将流量切换回旧环境,该环境现在具有 4.53.01 版本的消息处理器和已针对新的 JSONPath 表达式进行现代化的代理。
    • 删除并停用新环境和关联的节点。
  • 停机时间和升级

    此策略涉及使用有缺陷的 JSON 路径表达式来获取 API 代理的停机时间。它不需要购买额外的消息处理器节点,但会导致受影响的代理的 API 流量中断。

    • 确定受影响的代理(具有受影响的政策),并为所有受影响的代理生成新的修订版本。
    • 通过在代理的新修订版本中实现“补救”部分中说明的修复,应用必要的修复。暂时不要部署。
    • 为受影响的代理安排停机时间。
    • 将所有消息处理器升级到 Edge Private Cloud 版本 4.53.01。请注意,现有代理可能会在新升级的消息处理器上失败。
    • 所有消息处理器都升级到 Edge Private Cloud 版本 4.53.01 后,部署新创建的包含已修复 JSONPath 表达式的代理修订版本。
    • 恢复此类代理上的流量。
  • 在升级之前重新设计代理

    您可以在升级到 Edge for Private Cloud 4.53.01 之前重新设计代理本身。您可以使用其他方法来获得相同的结果,而不必依赖特定的 JSON 路径表达式。

    例如,如果您使用的是带有 JSON 路径的“提取变量”政策,则可以在升级到较新版本之前,将该政策替换为提取类似数据的 JavaScript 政策。升级完成后,您可以将代理更改回使用 JSON 路径和较新格式。

JavaCallout 变更

上下文

Edge for Private Cloud 4.53.00 及更早版本包含一个名为 deprecated ($APIGEE_ROOT/edge-message-processor/lib/deprecated) 的目录,其中包含大量 JAR 库。这些库可用于 JavaCallout 政策中的 Java 代码,并且可由您的自定义 Java 代码直接或间接使用。

变更

在 Edge Private Cloud 版本 4.53.01 中,已移除已弃用的目录。如果您的 Java 代码依赖于此类库,那么当消息处理器升级到版本 4.53.01 时,使用此类 Java 调用的代理将失败。为避免此类故障,请在将消息处理器升级到版本 4.53.01 之前,按照以下缓解步骤操作。

应对措施

  1. 使用变更检测工具或手动检查 Java Callout 政策和关联的 JAR。检查是否有任何政策引用了当前消息处理器的“deprecated”目录中的库。

    如果您使用 Apigee 提供的工具进行上述检测,该工具将生成一份报告,如下表所示。具体而言,它针对的是引用旧版 Edge for Private Cloud 的 $APIGEE_ROOT/edge-message-processor/lib/deprecated 目录中找到的 JAR 的政策。

    该工具将生成以下格式的报告:

    组织 环境 制品名称 制品类型 修订版本 政策名称 政策类型 影响类型 影响特定字段 影响确定性 文档
    org1 组织级 JAR java-callout 检测到 simple-javacallout-o1-jar-1.jar 的弃用库 ['检测到使用了 commons-io-2.5.jar 中的类 org.apache.commons.io.FileUtils', '检测到使用了 commons-io-2.5.jar 中的类 org.apache.commons.io.input.XmlStreamReaderException'] JavaCallout 变更
    org3 env3 env-level-jar java-callout 检测到 fat-javacallout-e3-jar-1.jar 的弃用库 ['检测到使用了 httpclient-4.5.2.jar 中的 org.apache.http.impl.auth.NTLMSchemeFactory 类'] JavaCallout 变更
    org1 env1 p1 proxy-level-jar 1 java-callout 检测到 simple-javacallout-p1-jar-1.jar 的弃用库 ['检测到使用了 commons-lang3-3.4.jar 中的 org.apache.commons.lang3.builder.ToStringBuilder 类', '检测到使用了 commons-lang3-3.4.jar 中的 org.apache.commons.lang3.Validate 类'] JavaCallout 变更

    如需详细了解上述输出表格中的列,请参阅了解工具输出部分。

  2. 确定此类已弃用的库后,您可以按照以下方法之一来缓解问题。
    • 资源放置(如果您有少量 Java-Callout jar 引用的已弃用目录中的 jar / 库,建议采用此方法)
      • 在所需级别(API 代理修订版本、环境或组织)将已标识的已弃用 JAR 上传为资源
      • 照常继续进行 Apigee 软件升级。
    • 手动放置(如果您有大量 Java-Callout JAR 引用的 JAR / 库,建议使用此方法)
      • 在每个消息处理器节点上,在路径 $APIGEE_ROOT/data/edge-message-processor/ 下创建一个名为 external-lib 的新目录。
      • 将已识别的 JAR 从已弃用的目录复制到此 external-lib 目录:cp $APIGEE_ROOT/edge-message-processor/lib/deprecated/some.jar $APIGEE_ROOT/data/edge-message-processor/external-lib/some.jar
      • 确保 Apigee 用户可以读取目录和底层 JAR:chown -R apigee:apigee $APIGEE_ROOT/data/edge-message-processor/external-lib
      • 照常继续进行 Apigee 软件升级。

OpenLDAP 更改

上下文

在 Edge Private Cloud 中,OpenLDAP 可用于身份验证和授权。在 Edge for Private Cloud 4.53.01 中,Apigee 随附的 OpenLDAP 软件已从版本 2.4 升级到 2.6。

变更

在 OpenLDAP 2.6 中,相对专有名称 (RDN) 的长度限制为大约 241 字节/字符。此限制是强制执行的硬性上限,无法修改。

影响
  • 对于 RDN 过大的条目,会发生复制或导入失败。
  • 尝试创建组织、环境、自定义角色、权限等实体可能会导致错误消息:"message": "[LDAP: error code 80 - Other]"
  • Apigee 的 LDAP 中任何长度超过 241 字节的 DN 都会受到影响。此类 DN 会阻止 Apigee OpenLDAP 软件成功升级,您必须先针对此类项采取缓解策略,然后才能继续升级。

一般来说,在 Apigee 的 LDAP 中,长 DN 与权限相关,因为它们是通过连接多个实体创建的。此类权限条目尤其容易出现升级问题。

例如,

dn: cn=@@@environments@@@*@@@applications@@@*@@@revisions@@@*@@@debugsessions,ou=resources,cn=businessuser,ou=userroles,o=orgname,ou=organizations,dc=apigee,dc=com

通常,您会使用长度合适的组织、环境和角色名称,以便 LDAP 中的 RDN 最终小于 241 字节。

应对措施

升级到 4.53.01 之前

以下步骤将帮助您验证现有 LDAP 2.4 集群中是否存在较长的 RDN。

#1 - 提取 LDAP 数据

使用 ldapsearch 命令查找标识名 (dn),并将输出重定向到文件:

ldapsearch -o ldif-wrap=no -b "dc=apigee,dc=com" -D "cn=manager,dc=apigee,dc=com" -H ldap://:10389 -LLL -x -w LDAP_PASSWORD dn > /tmp/DN.ldif

确保上述 DN.ldif 文件包含 LDAP 条目。

#2 - 识别较长的 RDN

更改检测工具使用生成的 LDIF 文件来识别超过 241 字节/字符的 LDAP RDN。

该工具将生成以下格式的报告:

组织 环境 制品名称 制品类型 修订版本 政策名称 政策类型 影响类型 影响特定字段 影响确定性 文档
cn=really-long-name,ou=userroles,o=edge-platform,ou=organizations,dc=apigee,dc=com LDIF 文件 LDAP RDN 超过 241 个字符 cn=really-long-name OpenLDAP 更改

如需详细了解上述输出表中的列,请参阅了解工具输出部分

如果上述命令未产生任何输出,则现有 LDAP 设置中没有 RDN 超过 241 字节/字符。您可以像往常一样继续升级。

如果上述命令生成输出,则表示存在超过 241 字节/字符的 RDN。对于此类问题,请按照第 3 步中所述的缓解步骤操作,然后再继续升级到 Edge for Private Cloud 4.53.01。

#3 - 处理较长的 RDN

如果收到第 2 步的输出,则表示存在超过 241 字节/字符的 RDN,请按照以下缓解步骤操作:

查看超过 241 字节的 LDAP 条目。

  • 如果 RDN 过长主要是因为自定义角色名称、应用、API 产品或其他实体的名称过长,请改用名称较短的替代实体。
  • 如果组织名称或环境名称是导致 RDN 过长的主要因素,您将必须迁移到名称较短的其他组织或环境。

继续重复上述步骤,直到您的 LDAP 中没有长度超过 241 字节的 RDN。达到此状态后,请照常继续进行私有云版本升级。

加密提供程序更改

上下文

此更改是从 Edge for Private Cloud 4.53.00 沿用下来的。在 Edge for Private Cloud 4.53.00 中,内部加密提供程序已从 Bouncy Castle (BC) 更新为 Bouncy Castle FIPS (BCFIPS),以启用 FIPS 支持。

变更

如果 JavaCallout 政策依赖于使用原始 BC 提供程序,尤其是在使用 BCFIPS 提供程序中已加强的安全功能时(例如,使用通用密钥对进行加密和签名),则需要对这些 JavaCallout 政策进行现代化改造。尝试使用名称 BC 加载 Bouncy Castle 加密提供程序的 JavaCallout 政策可能会失败,因为默认提供程序已更改。使用 BC 提供程序的此类政策随后可能会中断。依赖于旧版 BC 提供程序的任何自定义实现将不再可访问,需要进行审核并重新实现。

应对措施

建议的解决方法是使用 BCFIPS 提供程序。依赖于旧提供程序的自定义 JavaCallout 实现需要使用 Bouncy Castle FIPS 提供程序(可通过字符串“BCFIPS”访问)进行检查和重新实现。

变化检测工具

我们构建了一个变更检测工具,用于识别在迁移到 Edge for Private Cloud 4.53.01 期间和之后可能受到影响的 Apigee 代理、政策和共享流。此工具会生成一份报告,详细说明受更改影响的已部署代理、共享流和 OpenLDAP,并提供有关与这些已识别的代理或共享流相关的特定指南和策略的指导。

前提条件

  1. 需要使用基于 RHEL 的机器才能运行此工具。
  2. 必须在宿主虚拟机上安装并正确配置 JRE 8,以允许该工具的脚本运行。
  3. 该工具需要管理服务器的正确端点 (网址) 和有效的管理凭据,以便进行身份验证和数据检索。
  4. 该工具需要访问指定的工作目录(例如 /tmp),以便提取软件包、生成日志和存储输出。确保此目录有足够的磁盘空间和适当的读/写权限。
  5. 该工具需要使用 OpenLDAP 更改 - 提取 LDAP 数据部分中的 ldapsearch 命令来检测超过 241 个字符 / 字节的长 RDN。

运行工具

满足上述所有前提条件后,下载该工具,同时提供您用于访问 Apigee 代码库的 Apigee 用户名和密码。下载完成后,解压缩下载的归档文件。

curl -u uName:pWord https://software.apigee.com/apigee/change-detector/change-detector-for-4.53.01_1.0.0.zip -o /tmp/change-detector-for-4.53.01_1.0.0.zip
unzip /tmp/change-detector-for-4.53.01_1.0.0.zip

下载完成后,您可以运行以下命令来查看该工具的所有可用选项:

./change-detector --help

如需运行该工具,请使用以下命令,并将占位符替换为您的信息:

export APIGEE_PASSWORD=[your_password]
./change-detector --username [your_username] --mgmt-url [MGMT url]

如需检测大型 RDN LDAP 条目,请运行以下命令:

./change-detector --username [your_username] --mgmt-url [MGMT url] --ldif-file [LDIF_file]

该工具会生成 JSON 或 CSV 格式的输出,可以直接使用或导入到人类可读的工具(例如 Google 表格)中。

了解工具输出

组织

指向工件所在组织的名称。对于 OpenLDAP 更改,此值为 None

环境

组织中的特定环境(例如,开发、测试、生产)。对于 OpenLDAP 更改,此值为 None

对于 JavaCallout 更改,如果 Artifact Type=env-level-jar,则此字段将为 None

制品名称

此字段用于说明代理/共享流的名称。对于 OpenLDAP 更改,此字段显示 RDN 的 LDAP 实体。

对于 Java Callout 更改,如果 Artifact Type 为 env-level-jarorg-level-jar,此字段将为 None

制品类型

  • 对于 OAS 和 JSON 更改,此列指定了制品类型(代理或共享流)。
  • 对于 Java Callout 更改,此列提供有关受影响的 JAR 上传到的位置或级别的详细信息。资源 (JAR) 可以存储在三个级别之一org-levelenv-levelproxy-level
  • 对于 OpenLDAP 更改,此字段表示工具中使用的 LDIF 文件。

修订版本

它指向受影响的代理/共享流的已部署修订版本。对于 OpenLDAP 更改,它将为 None

政策名称

被确定为潜在问题的特定政策的名称。对于 OpenLDAP 更改,它将为 None

政策类型

它指向政策的类型。对于 OpenLDAP 更改,它将为 None

影响类型

  • 此字段用于描述在代理/共享流中检测到的特定类型的更改。
  • 对于 JavaCallout 更改,如果检测到与 java-callout 相关的更改,该工具会在相应列中以如下方式指向受影响的 java-callout,该 java-callout 引用了旧版 Edge for Private Cloud 的 $APIGEE_ROOT/edge-message-processor/lib/deprecated 目录中存在的 JAR。
  • deprecated library detected for NAME_OF_THE_AFFECTED_JAVA_CALLOUT_JAR
  • 对于 OpenLDAP 更改,此字段会显示是否有任何 LDAP 实体的 RDN 超过 241 字节或字符。

影响特定字段

  • 对于 OAS 更改,此字段是政策的来源标记中使用的变量的名称。
  • 对于 JSON 更改,此字段会显示被标记为潜在问题的确切 JSONPath 表达式或元素。
  • 对于 Java Callout 更改,此字段包含受影响的 JavaCallout JAR 使用/引用(存在于旧版私有云的 $APIGEE_ROOT/edge-message-processor/lib/deprecated 目录中)的确切类和相应 JAR 的名称的详细信息,如果未缓解,则在升级到版本 4.53.01 时会导致失败。
  •  ['Detected use of class CLASS_NAME_1 from JAR_NAME_1',
        Detected use of class CLASS_NAME_2 from JAR_NAME_2', 
      .. , .. , ]
  • 对于 OpenLDAP 更改,此字段显示了所有超过 241 字节或字符的 LDAP 实体的 RDN。

影响确定性

  • 此字段用于说明工具检测到特定商品的确定程度。此列的值可以是“高”或“中”(以后可能会添加更多值)。

    值表示该工具已确定,升级到版本 4.53.01 后,相应项导致应用崩溃的概率非常高。中等值表示工具无法明确检测到问题,需要更多策略才能做出判断(例如,捕获轨迹以观察代理执行期间已解析的变量)。

  • 与 JavaCallout 和 OpenLDAP 更改相关的检测在影响确定性列中始终具有值。

文档

此列提供指向 Apigee 文档(本文的相关部分)的超链接,其中说明了相应问题及其缓解步骤。