本页面适用于 Apigee 和 Apigee Hybrid。
查看 Apigee Edge 文档。
API 代理开发者通常使用一个或多个 Apigee 数据持久性机制来存储配置数据,以便以后可在 API 代理中访问配置数据。本主题介绍如何根据您的使用场景选择合适的持久性机制。
持久性机制
下表简要说明了 Apigee 中提供的持久性机制:机制 | 使用 |
---|---|
键值映射 | 键值映射 (KVM) 为可能会定期更改的数据提供常规运行时存储。例如:用户会话数据、购物车等。KVM 条目可以加密。 另请参阅使用键值映射。 |
属性集 | 属性集非常适合存储不经常更改的配置数据。 另请参阅使用属性集。 |
Kubernetes Secret | (仅限 API Hybrid)使用 Secret 存储敏感数据,例如用户凭据。 另请参阅在 Kubernetes Secret 中存储数据。 |
持久性机制的范围
每个可用的持久性机制都有一个特定的范围,它决定了您可以访问其存储数据的位置。下表汇总了每种持久性机制的可用范围。如需详细了解范围,请参阅关于持久性范围和属性集范围。
组织 | 环境 | API 代理 | |
---|---|---|---|
键值映射 | 是 | 是 | 是 |
属性集 | 否 | 是 | 是 |
Kubernetes Secret | 否 | 是 | 否 |
决定使用哪种持久性机制
本部分介绍了每种持久性机制的使用场景,以帮助您确定哪种机制最适合用来存储配置数据。
何时使用键值映射
Apigee 不提供用于存储、更新或删除 KVM 数据的 API。您必须使用 KeyValueMapOperations 政策执行这些任务。该政策可让您在执行代理时在运行时执行 KVM 操作。
在以下情况下,请考虑使用 KVM:
- 您有数千个、数十万或数百万个键值映射条目(不超过记录的 KVM 大小限制的任意数目)。
- 您在设计时有未知条目。
例如,使用 KVM 在用户登录时存储用户会话数据,并在用户退出登录时删除这些数据。
何时使用属性集
在以下情况下,请考虑使用属性集:
- 键和值在设计时已知。运行中的 API 代理无法更改属性集值。它们在代理流中以只读变量的形式提供。
- 您有几个甚至几百个键(总大小不到 110 KB)。属性集键和值始终存储在内存中以供快速访问。
- 您希望让管理员更改某个环境中的属性集而无需重新部署 API 代理。
例如,属性集非常适合用于存储路由规则。路由规则是键/值对,其中值是目标端点网址。这些值通常因环境而异,并且可由一个环境中部署的多个 API 代理共享。属性集也非常适合用来存储公钥和证书。
何时使用 Kubernetes Secret
此选项仅适用于 Apigee Hybrid。它允许 API 代理访问存储在 Kubernetes Secret 中的数据。此选项类似于属性集,其中存储的数据以执行代理中的消息流变量的形式提供。但是,数据始终保留在运行时层面中;在 Apigee Cloud 中绝不会被设为管理层面。
在以下情况下,请考虑使用 Kubernetes Secret:
- 您需要存储您从不希望存储在管理层面的敏感信息。例如,您可以使用 Kubernetes Secret 来存储访问外部系统所需的私钥或凭据。
- 您需要与部署在同一环境中的多个 API 代理共享存储的数据。