你当前正在访问 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 门户。 在门户菜单中,选择“创建资源”。

    屏幕截图显示在 Azure 门户的左侧导航窗格上突出显示的“创建资源”选项。

  2. 在“入门”窗格上的搜索栏中输入“Azure Cache for Redis”。 在搜索结果中找到“Azure Cache for Redis”,然后选择“创建”

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

  3. 在“新建 Redis 缓存”窗格的“基本信息”选项卡上,配置缓存的以下设置:

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

  5. 在“网络”选项卡上,选择用于缓存的连接方法。

  6. 选择“高级”选项卡,或者选择“下一步:高级”

  7. 在“高级”窗格上,根据以下信息验证或选择身份验证方法:

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

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

    重要

    为了获得最佳安全性,我们建议你在可能的情况下使用 Microsoft Entra ID 和托管标识来授权针对缓存的请求。 与共享访问密钥授权相比,使用 Microsoft Entra ID 和托管标识进行授权提供了更高的安全性和易用性。 若要详细了解如何将托管标识与缓存配合使用,请参阅使用 Microsoft Entra ID 进行缓存身份验证

  8. (可选)选择“标记”选项卡或选择“下一步:标记”。

  9. (可选)如果希望对缓存资源进行分类,请在“标记”选项卡中输入标记名称和值

  10. 选择“查看 + 创建”按钮。

    在“查看 + 创建”选项卡上,Azure 会自动验证你的配置

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

新的缓存部署需要几分钟的时间。 可以在 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 管理中的性能

后续步骤