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

使用 Azure API 管理连接到虚拟网络

可将 Azure API 管理部署在 Azure 虚拟网络 (VNet) 内部,以访问该网络中的后端服务。 有关 VNet 连接选项、要求和注意事项,请参阅将虚拟网络与 Azure API 管理配合使用

本文介绍如何在外部模式下为 API 管理实例设置 VNet 连接,在此模式下,可以从公共 Internet 访问开发人员门户、API 网关和其他 API 管理终结点,而后端服务位于网络中。

Connect to external VNet

对于特定于内部模式的配置(在此模式下,只能在 VNet 内部访问这些终结点),请参阅使用 Azure API 管理连接到内部虚拟网络

注意

本文使用 Azure Az PowerShell 模块,这是与 Azure 交互时推荐使用的 PowerShell 模块。 若要开始使用 Az PowerShell 模块,请参阅安装 Azure PowerShell。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az

可用性

重要

此功能在 API 管理的“高级”和“开发人员”层中可用。

必备条件

某些先决条件因托管 API 管理实例的stv2的版本(stv2stv1)而异。

提示

使用门户创建或更新现有 API 管理实例的网络连接时,该实例将托管在 stv2 计算平台上。

  • 虚拟网络和子网位于 API 管理实例所在的区域和订阅中。 子网可以包含其他 Azure 资源。

  • 附加到上述子网的网络安全组。 网络安全组 (NSG) 需要显式允许入站连接,因为 API 管理在内部使用的负载均衡器默认是安全的,并且会拒绝所有入站流量。 有关具体的配置,请参阅本文稍后的配置 NSG 规则

  • 标准 SKU 公共 IPv4 地址。 为外部或内部访问设置虚拟网络时,需要公共 IP 地址资源。 使用内部虚拟网络时,公共 IP 地址仅用于管理操作。 详细了解 API 管理的 IP 地址

    • IP 地址必须与 API 管理实例和虚拟网络位于同一区域和订阅中。

    • 创建公共 IP 资源时,请确保为其分配 DNS 名称标签。 选择使用的标签并不重要,但如果将此资源分配给 API 管理服务,则需要一个标签。

    • IP 地址的值被分配作为该区域中 API 管理实例的虚拟公共 IPv4 地址。

    • 从外部虚拟网络更改为内部虚拟网络(反之亦然),并且在更改网络中的子网,或更新 API 管理实例的可用性区域时,必须配置其他公共 IP 地址。

启用 VNet 连接

使用 Azure 门户启用 VNet 连接(stv2 计算平台)

  1. 转到 Azure 门户,查找 API 管理实例。 搜索并选择“API 管理服务”。

  2. 选择你的 API 管理实例。

  3. 选择“网络”。

  4. 选择“外部”访问类型。 Select VNet in Azure portal.

  5. 在预配了 API 管理服务的位置(区域)列表中:

    1. 选择“位置” 。
    2. 选择“虚拟网络”、“子网”和“IP 地址” 。
    • 系统将在 VNet 列表中填充你所配置区域内设置的 Azure 订阅中的可用资源管理器 VNet。

      VNet settings in the portal.

  6. 选择“应用”。 API Management 实例的“网络”页将使用新的 VNet 和子网选项进行更新。

  7. 继续为 API 管理实例的其余位置配置 VNet 设置。

  8. 在顶部导航栏中,选择“保存”,然后选择“应用网络配置”。

更新 API 管理实例可能需要 15 到 45 分钟。 开发人员层级在此过程中有故障时间。 基本 SKU 和更高级别的 SKU 在此过程中没有停机时间。

使用资源管理器模板(stv2 计算平台)启用连接

  • Azure 资源管理器模板(API 版本 2021-08-01)

    Deploy to Azure

使用 Azure PowerShell cmdlet 启用连接(stv1 平台)

在 VNet 中创建更新 API 管理实例。

配置 NSG 规则

在 API 管理子网中配置自定义网络规则,以筛选进出 API 管理实例的流量。 建议使用以下最低 NSG 规则,以确保正确操作和访问实例。

  • 在大多数情况下,请使用指示的服务标记(而不是服务 IP 地址)来指定网络源和目标。
  • 将这些规则的优先级设置为高于默认规则的优先级。
  • 根据监视和其他功能的使用情况,可能需要配置其他规则。 有关详细设置,请参阅虚拟网络配置参考
源/目标端口 方向 传输协议 服务标记
源/目标
用途 VNet 类型
* / [80], 443 入站 TCP Internet / VirtualNetwork 客户端与 API 管理的通信 仅外部
* / 3443 入站 TCP ApiManagement / VirtualNetwork Azure 门户和 PowerShell 的管理终结点 外部和内部
* / 6390 入站 TCP AzureLoadBalancer / VirtualNetwork Azure 基础结构负载均衡器(高级服务层级所需) 外部和内部
* / 443 出站 TCP VirtualNetwork / Storage 与 Azure 存储的依赖关系 外部和内部
* / 1433 出站 TCP VirtualNetwork / SQL 访问 Azure SQL 终结点 外部和内部
* / 443 出站 TCP VirtualNetwork / AzureKeyVault 对 Azure 密钥保管库的访问权限 外部和内部

连接到托管在虚拟网络中的 Web 服务

将 API 管理服务连接到 VNet 后,可像访问公共服务一样访问 VNet 中的后端服务。 创建或编辑 API 时,请在“Web 服务 URL”字段键入 Web 服务的本地 IP 地址或主机名(如果为 VNet 配置了 DNS 服务器)。

Add API from VNet

自定义 DNS 服务器设置

在外部 VNet 模式下,DNS 默认由 Azure 管理。 可以选择性地配置自定义 DNS 服务器。

API 管理服务依赖于多项 Azure 服务。 当 API 管理托管在包含自定义 DNS 服务器的 VNet 中时,API 管理需要解析这些 Azure 服务的主机名。

重要

如果你打算为 VNet 使用自定义 DNS 服务器,请先进行相应设置,然后将 API 管理服务部署到 VNet 中。 否则,每次通过运行应用网络配置操作更改 DNS 服务器时,都需要更新 API 管理服务。

路由

  • 负载均衡的公共 IP 地址 (VIP) 将会保留,以用于访问 VNet 外部的所有服务终结点和资源。
    • 可以在 Azure 门户中的“概述/概要”边栏选项卡上找到公共 VIP。
  • 子网 IP 范围内的某个 IP 地址 (DIP) 用于访问 VNet 中的资源。

有关详细信息和注意事项,请参阅 Azure API 管理的 IP 地址

常见网络配置问题

本部分已移到其他位置。 请参阅虚拟网络配置参考

疑难解答

  • 在子网中初次部署 API 管理服务失败

    • 将虚拟机部署到相同子网。
    • 连接到虚拟机,并验证与 Azure 订阅中以下其中一项资源的连接:
      • Azure 存储 Blob
      • Azure SQL 数据库
      • Azure 存储表
      • Azure 密钥保管库(适用于 平台上托管的 API 管理实例)

    重要

    验证连接后,先删除子网中的所有资源,然后将 API 管理部署到子网中(当 API 管理托管在 stv1 平台上时需要执行此操作)。

  • 验证网络状态

    • 在将 API 管理部署到子网后,应使用门户来检查实例与依赖项(如 Azure 存储)之间的连接性。
    • 在门户中左侧菜单中的“部署和基础结构”下,选择“网络”“网络状态”。

    Verify network connectivity status in the portal

    筛选器 说明
    必需 选择“必需”,以查看 API 管理与必需 Azure 服务之间的连接性。 如果失败,则表示该实例无法执行核心操作来管理 API。
    可选 选择“可选”,以查看 API 管理与可选服务之间的连接性。 如果连接失败,仅表示特定功能(如 SMTP)将无法正常工作。 连接失败可能会导致使用和监视 API 管理实例以及提供所承诺 SLA 的能力下降。

    若要解决连接问题,请查看网络配置设置并修复所需的网络设置。

  • 增量更新
    更改网络时,请参阅 NetworkStatus API,以验证 API 服务是否仍具有关键资源的访问权限。 连接状态应每 15 分钟更新一次。

    若要使用门户来应用对 API 管理实例的网络配置更改,请执行以下操作:

    1. 在实例的左侧菜单中的“部署和基础结构”下,选择“虚拟网络”。
    2. 选择“应用网络配置”。
  • 资源导航链接
    托管在 计算平台上的 APIM 实例在部署到某个资源管理器 VNET 子网后,将通过创建资源导航链接来保留该子网。 如果子网已包含来自其他提供程序的资源,则部署将失败。 同样,当删除 API 管理服务或将其移至其他子网时,资源导航链接也将会删除。

后续步骤

了解有关以下方面的详细信息: