Apigee Edge 与 Apigee X 之间的区别

您正在查看 Apigee Edge 文档。
前往 Apigee X 文档
信息

本主题介绍了 Apigee X(有时也简称为“Apigee”)与 Apigee Edge 之间的区别。本文面向正在考虑迁移到 Apigee X 的现有 Apigee Edge 客户。

如需详细了解 Apigee X 功能,请参阅 Apigee X 功能摘要

下表列出了本主题中比较的 Apigee API 管理产品:

产品 托管位置 管理者
适用于公有云的 Apigee Edge Apigee 的云 Apigee
适用于私有云的 Apigee Edge 客户的私有数据中心。 客户
Apigee X Google Cloud Apigee
Apigee Hybrid Google Cloud 和客户的私有数据中心 Apigee 负责对管理层面进行管理,而客户管理运行时。

Apigee Edge 与 Apigee X 功能比较

以下部分比较了 Apigee Edge 公有/私有云功能与 Apigee X 和 Hybrid 的可用性。

请注意,Apigee X 限制也不同于 Apigee Edge 限制

当前特性差异摘要

下表介绍了适用于公有云和私有云平台的 Apigee X(和混合云)与 Apigee Edge 在功能层面上的差异。

Apigee Edge 特性 Apigee X 和 Hybrid 支持
API 代理修订版本

部署后不可修改

有效的健康检查 外部 MIG(使用虚拟机)支持此功能。使用 Private Service Connect 时不受支持。如需了解路由类型,请参阅配置路由
Apigee Adapter for Istio 已弃用:建议您改用 Apigee Adapter for Envoy
公司 开发者

有一个类似但不完全相同的解决方案。请参阅使用 AppGroup 整理应用所有权

CwC(带配置的代码)

已计划

部署
  • 异步部署
  • 根据上次使用管理层面“签入”的运行时环境来检索部署状态
环境
  • 对环境组的支持
  • 通过 Apigee 界面和 API 自助完成
  • 更加灵活地处理拓扑
  • 一个 MP Pod 只能供一个环境使用

如需了解详情,请参阅环境和环境组简介

托管目标

请使用 Cloud RunCloud Functions

HTTP/1.1 标头字段名称处理 将 HTTP/1.1 标头字段名称转换为小写形式,以便转发到后端。在 Apigee Edge 中,标头字段名称的大小写会保留。
用于精细的基于角色的访问权限控制的 IAM 角色

已计划

使用 [@.length-x] 的 JSONPath

Apigee X 不支持在 JSONPath 表达式中使用 [@.length-x]。 JSONPath 规范规定,表达式取决于底层脚本语言。length-x 是 JavaScript 结构,而非 Java,并且 [@.length-x] 并未作为规范的一部分实现。在 Apigee X 中,表达式 [@.length-x] 已被编号方案 ([-x]) 取代。

就此示例而言:

{
    "books": [
      {
        "name": "A",
      },
      {
        "name": "B",
      }
    ]
}

输入:$.books[@.length-1] 在 Apigee Edge 中返回 {“name”: “B”},在 Apigee X 中返回 [{“name”: “B”}]

密钥库/信任库

作为 Kubernetes Secret 进行管理的 Northbound

KVM
  • 您可以在 Apigee 界面中创建加密的环境范围 KVM。KVM 始终处于加密状态。您无法在该界面中添加、更新或查看 KVM 条目。
  • 通过 GET 命令访问 KVM 时,将 private. 特性与所有变量一起使用,以在调试 (Trace) 会话中隐藏 KVM 信息。如果未使用 private. 特性,则 KVM 仍被加密;不过,KVM 信息将在调试 (Trace) 会话中显示为解密,并且不会抛出任何异常。
  • 您可以使用 keyvaluemaps.entries APIKeyValueMapOperations 政策管理 KVM 条目。
  • 您可以针对与 KVM 相同的某些使用场景使用属性集。请参阅使用属性集
  • <MapName> 元素使 KeyValueMapOperations 政策能够在运行时确定要动态使用的 KVM。

如需详细了解如何在界面中创建 KVM,请参阅使用键值映射。如需了解如何选择适当的数据持久性机制,另请参阅访问配置数据

Microgateway 我们建议改用 Apigee Adapter for Envoy
获利 请参阅 与创收的区别
Node.js
  • 不支持 Node.js API 代理。
  • Apigee 建议将 Node.js 应用作为单独的容器在 Kubernetes 中进行托管(同一集群或不同集群)
北向 mTLS 通过 Google Cloud 负载平衡器支持。请参阅使用外部应用负载平衡器的 Apigee X 北向双向 TLS
OAuth 已按最终用户 ID 和/或应用 ID 撤消了新的 RevokeOAuthv2 政策。此政策取代了 Apigee Edge API 以撤消 OAuth2 令牌。
政策
  • 新政策:
  • 不支持的政策:
    • StatisticsCollector 政策(已替换为新的 DataCapture 政策)
  • 更改后的政策
reasonPhrase 不受支持。
资源 无法使用组织级层资源
角色与权限
  • 通过 Google Cloud 控制台 IAM 服务进行管理
  • 系统提供了一些精选的开箱即用角色
  • 您可以创建可包括其他 Google Cloud 权限的自定义角色

如需了解详情,请参阅用户和角色

Sense 使用 Advanced API Security
“构建代理”向导中的 SOAP 服务 不支持。请参阅 wsdl2apigee,该开源项目提供与 Apigee 搭配使用的 SOAP 实用程序。
跟踪/调试会话 请参阅与 Trace 的区别
虚拟主机

对于 Apigee Hybrid:

  • 该入站流量是通过 Anthos Service Mesh 实现的。
  • 密钥和证书直接部署到 Kubernetes。

对于 Apigee X:

  • 每个实例会通过自签名证书公开 HTTPS 端点。您可以通过查询组织来下载证书的 CA。

与 Trace 的区别

下表比较了 Trace 在 Apigee X 和 Apigee Hybrid 与 Apigee Edge Cloud 中运行的差异。

功能 Apigee Edge Cloud Apigee X 和 Apigee Hybrid
准时 实时;同步 稍微延迟;异步
会话名称/ID 接受用户的会话名称 不接受用户的会话名称
过滤条件 基本过滤条件支持,例如标头和查询参数过滤 对复杂过滤逻辑的支持,包括 AND 和 OR 逻辑运算。可访问流变量参考文档中提到的任何流变量。语法与条件使用的语法相同,如条件参考文档中所示。
会话超时

定义调试会话的长度以及数据的保留时长。

默认值是 20 分钟(如果是通过 API 调用启动)和 10 分钟(如果是在界面中启动)。

仅定义调试会话的长度。起点是消息处理器接收在调试模式下运行的请求的时机。

默认值是 5 分钟(如果会话是通过 API 启动)和 10 分钟(如果会话是在界面中启动)。

数据会保留 24 小时,然后由 Hybrid 自动删除。

会话有效性

会话创建请求有效的时长。如果调试会话在此时间段内未启动,则同步器可以忽略会话创建请求。请务必按照前提条件中的说明,让同步器的时钟保持同步。
跟踪请求数 每个消息处理器最多处理 20 个 默认值为每个消息处理器处理 10 个;上限为 15 个。
API Apigee Edge Cloud Apigee X
Apigee X 公开了 Debug Session APIDebug Session Data API,但不支持通过 Apigee X API 执行以下操作:
停止调试会话

删除特定事务

创收方面的差异

下表比较了 Apigee Edge Monetization 与 Apigee X Monetization 的关键功能。

Apigee Edge Monetization Apigee X/Hybrid Monetization
费率方案与可附加到多个 API 产品的 API 产品套装关联 费率方案与 API 产品相关联(一对一关系)
应用开发者购买费率方案 应用开发者购买 API 产品
配额在 API 代理级别管理 配额在 API 产品级别(业务级别)管理
已发布费率方案只能过期;您无法修改或删除它们 已发布费率方案可以过期、修改、移至草稿或删除
复杂的配置(无向导或预览工具) 使用向导和预览工具简化了费率方案的配置
如果应用开发者尚未购买订阅,那么在处理首次 API 调用后,MonetizationLimitsCheck 政策会阻止访问 如果应用开发者尚未购买订阅或超出配额,MonetizationLimitsCheck 政策会立即阻止访问
可以使用事务记录政策中的自定义变量来捕获事务的获利数据。 Apigee 会自动捕获创收数据,并且可以使用 DataCapture 政策替换事务的创收数据。有关信息,请参阅捕获创收数据
可以为开发者和费率方案配置预付费和后付费账号。 只能为开发者配置预付费和后付费账号。

Apigee X 不支持哪些 Apigee Edge 功能?

Google 不打算支持以下功能:

  • Apigee Edge 扩展程序
  • OpenAPI 规范存储区
  • 用于搜索或撤消 OAuth 访问令牌的 API(因为令牌经过哈希处理)
  • OAuth v1 或 OAuth OAuthv1.0a 政策
  • Trireme(于 2019 年 10 月 10 日服务终止)
  • Apigee X 不支持前缀为“X-Apigee-”的标头,这些标头在发送到目标和客户端之前会从请求和响应中剥离。

API 比较

一般来说,大多数 Apigee Edge API 都有等效的 Apigee API 等效功能。本部分提供:

使用 API 的变更摘要

下面列出了与 Apigee Edge API 相比,所有 Apigee X API 中的行为变化。

行为 Apigee Edge API Apigee X API
基本网域 api.enterprise.apigee.com apigee.googleapis.com
Media 类型 application/json
application/xml
application/json
身份验证 OAuth2、SAML、基本 OAuth2
键中的时间戳 int64 格式
{
  "createdAt": 1234,
  "lastModifiedAt": 5678
}
String 格式
{
  "createdAt": "1234",
  "lastModifiedAt": "5678"
}
expand=false 查询参数的结构
[
        "helloworld",
        "weather"
      ]
{
  "proxies": [
    {
      "name": "helloworld"
    },
    {
      "name": "weather"
    }
  ]
}
以下划线开头的查询参数 支持 (_optimal=true) 不支持 (optimal=true)
载荷中的属性:
  • created_by
  • modified_by
  • self
支持 不支持
载荷中的默认值 已包含 未包含
错误处理结构
{
        "code": "...",
        "message": "..",
        "contexts": []
      }
{
  "error": {
    "code": 409,
    "message": "...",
    "status": "ABORTED",
    "details": [...]
  }
}
缓存删除响应 返回:200 OK 和缓存详情 返回:204 No Content
Cache API 操作 列出 创建 获取 更新 删除 全部清除 清除选项。 仅限列出删除。部署 API 代理时会自动创建短期 L1 缓存。如需了解详情,请参阅缓存内部

Apigee Edge 与 Apigee X 指标 API 之间的区别

使用 API 的更改摘要列出了 Apigee Edge API 与 Apigee X API 之间的一般区别。下表列出了 Metrics API 的具体差异:

功能 Apigee Edge API Apigee X API
API 端点 api.enterprise.apigee.com apigee.googleapis.com
每日分析电子邮件 不支持任何 API
Async Query List API 获取异步分析查询列表 响应中省略了 userId 属性。请参阅“方法:organizations.environments.queries.list”
Custom report API Reports API 已从响应中移除了 createdBylastModifiedBy 属性。请参阅 Reports API

不受支持的 Apigee Edge API

下表列出了不受支持的 Apigee Edge API(不含 Apigee X API 等效项)。

API 类别 不受支持的 Apigee Edge API
API 监控 不支持任何 API
API 代理
  • 强制取消部署 API 代理
  • 获取 npm 依赖项
  • 管理 npm 模块
审核 使用 Stackdriver Logging API
缓存的日志 不支持任何 API
公司 不支持任何 API
公司应用 不支持任何 API
公司应用系列 不支持任何 API
公司应用密钥 不支持任何 API
调试会话
  • 无法停止跟踪会话
  • 无法删除个别事务

如需了解详情,请参阅与 Trace 的区别

开发者应用 获取 API 资源的数量
开发者应用系列 不支持任何 API
扩展程序 不支持任何 API
密钥库:信任库 测试密钥库或信任库
LDAP 不支持任何 API
获利 不支持任何 API
OAuth V2 不支持任何 API
政策 不支持任何 API
资源文件
  • API 代理修订版本范围
  • 组织范围
Sense 不支持任何 API
用户和用户角色 使用与使用 API 管理用户、角色和权限中所述的 API 相关的 Google Identity and Access Management (IAM)
虚拟主机 不支持任何 API

适用于私有云的 Apigee Edge 与 Apigee Hybrid

下表比较了适用于私有云的 Apigee Edge 与 Apigee Hybrid:

服务 Apigee 产品或特性区域
适用于私有云的 Apigee Edge Apigee Hybrid
Analytics Qpid 和 Postgres 服务器 运行时层面的数据收集 Pod 使用 fluentdUDCA(通用数据收集代理)收集分析数据,并将数据发送到管理层面的 UAP(统一分析平台)。
API 代理网关 消息处理器 消息处理器 (MP) 负责处理传入请求。MP 作为运行时层面中的一个或多个容器化应用来实现。
持久性 Cassandra 节点或铃声 Cassandra 可持久保留 KMS、KVM、配额和缓存等特性。
部署 ZooKeeper 同步器可确保 API 代理配置、环境信息和其他数据在管理层面和运行时层面保持最新状态。
管理界面 Apigee Edge 界面托管在管理服务器上 Apigee 界面托管在管理层面上。
负载均衡 路由器 Istio Ingress 控制器向运行时层面中的消息处理器 (MP) 容器化应用发出请求。
API 管理服务器 通过管理服务器MART 访问 Apigee X API。MART 与本地 Cassandra 数据存储区进行交互,并充当 API 提供商,以便 Apigee X API 访问和管理运行时数据实体。
指标 配置 JMX 的每个组件 由所有服务的集群的单个 Prometheus 服务器进行管理。