你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Azure API 管理中使用外部 Redis 兼容缓存

适用于:所有 API 管理层级

除了利用内置缓存外,Azure API 管理还允许将响应缓存在外部 Redis 兼容缓存中,例如 Azure Cache for Redis。

使用外部缓存可以避免内置缓存的一些限制:

  • 避免在执行 API 管理更新期间定期清除缓存
  • 更好地控制你的缓存配置
  • 缓存比 API 管理层允许的数据更多的数据
  • 将缓存与 API 管理的消耗层配合使用
  • API 管理自承载网关中启用缓存

若要更详细地了解缓存,请参阅 API 管理缓存策略Azure API 管理中的自定义缓存

注意

目前无法在工作区中使用此功能。

将自己的缓存带到 APIM

学习内容:

  • 在 API 管理中添加外部缓存

先决条件

要完成本教程,需要:

创建 Azure Cache for Redis

本部分介绍了如何在 Azure 中创建用于 Redis 的 Azure 缓存。 如果你已有 Azure Cache for Redis 或其他与 Redis 兼容的缓存(无论是在 Azure 内部还是外部),则可以跳到下一部分。

  1. 若要创建缓存,请登录到 Azure 门户并选择“创建资源” 。

    左侧导航窗格中突出显示了“创建资源”。

  2. 在“入门”页上的搜索框中键入“Azure Cache for Redis”。 然后选择创建

    Azure 市场的屏幕截图,其中的搜索框中包含“Azure Cache for Redis”,并用红色框突出显示了“创建”。

  3. 在“新建 Redis 缓存”页上配置缓存的设置。

    设置 选择值 说明
    订阅 单击下拉箭头并选择你的订阅。 要在其下创建此新的 Azure Cache for Redis 实例的订阅。
    资源组 单击下拉箭头并选择一个资源组,或者选择“新建”并输入新的资源组名称。 要在其中创建缓存和其他资源的资源组的名称。 将所有应用资源放入一个资源组可以轻松地统一管理或删除这些资源。
    DNS 名称 输入唯一名称。 缓存名称必须是包含 1 到 63 个字符的字符串,只能包含数字、字母或连字符。 该名称必须以数字或字母开头和结尾,且不能包含连续的连字符。 缓存实例的主机名是 <DNS 名称>.redis.cache.windows.net
    位置 单击下拉箭头并选择一个位置。 选择使用缓存的其他服务附近的区域
    缓存 SKU 打开下拉列表并选择一个 SKU 此 SKU 决定可用于缓存的大小、性能和功能参数。 有关详细信息,请参阅用于 Redis 的 Azure 缓存概述
    缓存大小 打开下拉列表并选择缓存的大小 有关详细信息,请参阅用于 Redis 的 Azure 缓存概述
  4. 选择“网络”选项卡,或选择“网络”按钮(位于页面底部) 。

  5. 在“网络”选项卡中,选择你的连接方法。

  6. 选择“下一步: 高级”选项卡,或选择页面底部的“下一步: 高级”按钮,以查看“高级”选项卡。

    显示工作窗格中的“高级”选项卡和可供选择选项的屏幕截图。

    • 默认情况下,对于新的“基本”、“标准”或“高级”缓存,“Microsoft Entra 身份验证”处于启用状态,而“访问密钥身份验证”处于禁用状态。
    • 对于“基本”或“标准”缓存,可以选择非 TLS 端口的选项。
    • 对于“标准”和“高级”缓存,可以选择启用可用性区域。 创建缓存后,无法禁用可用性区域。
    • 对于“高级”缓存,请配置非 TLS 端口、群集、托管标识和数据持久性的设置。

    重要

    为了获得最佳安全性,Microsoft 建议尽可能使用 Microsoft Entra ID 和托管标识来授权针对缓存的请求。 与共享密钥授权相比,使用 Microsoft Entra ID 和托管标识进行授权提供了更高的安全性和易用性。 有关将托管标识用于缓存的详细信息,请参阅使用 Microsoft Entra ID 进行缓存身份验证

  7. 选择“下一步: 标记”选项卡,或选择页面底部的“下一步: 标记”按钮 。

  8. 或者,在“标记”选项卡中,如果希望对资源分类,请输入名称或值。

  9. 选择“查看 + 创建”。 在“查看 + 创建”上,Azure 会验证你的配置。

  10. 显示绿色的“已通过验证”消息后,选择“创建”。

创建缓存需要一段时间。 可以在 Azure Cache for Redis 的“概述”页上监视进度。 如果“状态”显示为“正在运行”,则表示该缓存可供使用。

将 Redis 缓存部署到 Kubernetes

对于自承载网关,进行缓存时需要外部缓存。 为了使缓存操作生效,自承载网关及其所依赖的缓存必须彼此接近,以最大程度地降低查找和存储延迟。 将 Redis 缓存部署到同一个 Kubernetes 群集或附近的单独群集是最佳做法。 了解如何将 Redis 缓存部署到 Kubernetes 群集

添加外部缓存

按照以下步骤在 Azure API 管理中使用外部的与 Redis 兼容的缓存。 可以将缓存限制到 API 管理实例中的特定网关。

该屏幕截图显示以下步骤在 Azure API 管理中添加用于 Redis 的外部 Azure 缓存。

“使用位置”设置

配置中的“使用位置”设置指定将使用缓存的 API 管理实例的位置。 选择以下方案之一:

  • 托管 API 管理实例的 Azure 区域(或配置的位置之一,前提是你有一个多区域部署)

  • 一个自承载网关位置

  • 默认:将缓存配置为 API 管理实例中的所有网关位置的默认值

    用于“默认”的缓存将由用于特定匹配区域或位置的缓存重写。

    例如,请考虑在“美国东部”、“东南亚”和“西欧”区域托管的 API 管理实例。 配置了两个缓存,一个用于“默认”,一个用于“东南亚”。 在此示例中,“东南亚”中的 API 管理将使用其自己的缓存,而其他两个区域将使用“默认”缓存条目。

注意

可以为多个 API 管理实例配置同一外部缓存。 API 管理实例可位于相同区域,也可位于不同区域。 在共享多个实例的缓存时,必须在“使用位置”设置中选择“默认”。

从同一订阅中添加用于 Redis 的 Azure 缓存

  1. 在 Azure 门户中浏览到你的 API 管理实例。
  2. 从左侧的菜单中选择“外部缓存”选项卡。
  3. 选择“+ 添加”按钮。
  4. 从“缓存实例”下拉字段中选择你的缓存。
  5. “使用位置”下拉字段中选择“默认”或指定所需的区域。
  6. 选择“保存”。

添加托管在当前 Azure 订阅外部或 Azure 外部(后者为一般情况)的与 Redis 兼容的缓存

  1. 在 Azure 门户中浏览到你的 API 管理实例。
  2. 从左侧的菜单中选择“外部缓存”选项卡。
  3. 选择“+ 添加”按钮。
  4. 从“缓存实例”下拉字段中选择“自定义”。
  5. “使用位置”下拉字段中选择“默认”或指定所需的区域。
  6. 在“连接字符串”字段中提供 Azure Cache for Redis(或与 Redis 兼容的缓存)连接字符串。
  7. 选择“保存”。

将 Redis 缓存添加到自承载网关

  1. 在 Azure 门户中浏览到你的 API 管理实例。
  2. 从左侧的菜单中选择“外部缓存”选项卡。
  3. 选择“+ 添加”按钮。
  4. 从“缓存实例”下拉字段中选择“自定义”。
  5. “使用位置”下拉字段中指定所需的自承载网关位置或“默认”。
  6. 在“连接字符串”字段中提供你的 Redis 缓存连接字符串。
  7. 选择“保存”。

使用外部缓存

添加与 Redis 兼容的缓存后,请在外部缓存中配置缓存策略以启用响应缓存,或配置按键缓存值功能。

有关详细示例,请参阅添加缓存以提高 Azure API 管理中的性能

后续步骤