在虚拟网络中访问 Azure Spring Apps 中的应用

注意

基本、标准和企业计划将从 2025 年 3 月中旬开始弃用,停用期为 3 年。 建议转换到 Azure 容器应用。 有关详细信息,请参阅 Azure Spring Apps 停用公告

标准消耗和专用计划将于 2024 年 9 月 30 日开始弃用,并在六个月后完全关闭。 建议转换到 Azure 容器应用。

本文介绍如何在专用网络中访问应用程序的终结点。

在虚拟网络中部署的 Azure Spring Apps 服务实例的应用程序上分配终结点时,该终结点使用专用的完全限定的域名 (FQDN)。 只能在专用网络中访问该域。 应用和服务使用应用程序终结点。 其中包括在 Azure Spring Apps 中设置过渡环境中的查看应用和部署部分内所述的“测试终结点”。 “日志流式处理”(如实时流式传输 Azure Spring Apps 应用日志中所述)也仅可在专用网络中进行。

可以使用以下两个选项使分配的终结点可访问:

  • 创建自己的专用域名服务 (DNS) 区域并将其链接到 Azure Spring Apps。 强烈建议使用此方法,因为 Azure Spring Apps 会自动将 DNS 区域与虚拟网络链接,并管理应用程序的终结点的 DNS 记录。

  • 创建自己的专用 DNS 区域并手动管理虚拟网络链接和 DNS 记录,按照有关查找 Azure Spring Apps 服务实例的负载均衡器 (LB) IP 地址的说明进行操作。

先决条件

创建专用 DNS 区域

使用以下步骤为专用网络中的应用程序创建专用 DNS 区域:

  1. 打开 Azure 门户。 使用搜索框搜索“专用 DNS 区域”。 从搜索结果中选择“专用 DNS 区域”

  2. 在“专用 DNS 区域”页面上,选择“添加” 。

  3. 填写“创建专用 DNS 区域”页上的表单。 对于“名称”,请输入 private.microservices.azure.cn

  4. 选择“查看 + 创建” 。

  5. 选择“创建”。

创建区域可能需要几分钟。

配置专用 DNS 区域以自动管理终结点

创建专用 DNS 区域后,可以使用 Azure Spring Apps 管理专用 DNS 区域。 此方法简化了处理虚拟网络链接和 DNS 记录的过程。 此方法在单个虚拟网络内具有多个实例,或使用虚拟网络对等连接的环境中特别有用。 Azure Spring Apps 会自动管理虚拟网络链接以及分配或取消分配终结点时 DNS“A”记录的动态添加或移除。

注意

添加专用 DNS 区域之前,Azure Spring Apps 不会自动管理分配的终结点。 若要为这些终结点启用 DNS 记录管理,请取消分配,然后重新分配终结点。

向专用 DNS 区域授予权限

使用以下步骤授予权限:

  1. 选择你创建的专用 DNS 区域资源,例如 private.microservices.azure.cn

  2. 选择“访问控制(IAM)”,然后选择“添加”“添加角色分配”。

    Azure 门户访问控制 (IAM) 页的屏幕截图,其中显示了“检查访问权限”选项卡,该选项卡中突出显示了“添加角色分配”按钮。

  3. Private DNS Zone Contributor 角色分配给 Azure Spring Apps 资源提供程序。 有关详细信息,请参阅使用 Azure 门户分配 Azure 角色

    注意

    如果找不到 Azure Spring Apps 资源提供程序,请搜索“Azure Spring Cloud 资源提供程序”。

    Azure 门户的屏幕截图,其中显示了“访问控制 (IAM)”页,其中“添加角色分配”窗格已打开,并且搜索结果显示了 Azure Spring Apps 资源提供程序。

若要将专用 DNS 区域与 Azure Spring Apps 服务实例链接,请使用 Azure CLI。 此步骤涉及指定资源组、Azure Spring Apps 实例名称和专用 DNS 区域的资源 ID。

使用以下命令通过 Azure Spring Apps 配置专用 DNS 区域。 此配置使 Azure Spring Apps 能够在专用 DNS 区域中自动创建虚拟网络链接,并在分配或取消分配终结点时管理 DNS“A”记录的添加或移除。

az spring private-dns-zone add \
    --resource-group $RESOURCE_GROUP \
    --service $AZURE_SPRING_APPS_INSTANCE_NAME \
    --zone-id $PRIVATE_DNS_ZONE_RESOURCE_ID

如果要从专用 DNS 区域取消链接 Azure Spring Apps 实例并停止 DNS“A”记录的自动管理,则可以清理配置。 使用以下命令清理配置了 Azure Spring Apps 的专用 DNS 区域:

az spring private-dns-zone clean \
    --resource-group $RESOURCE_GROUP \
    --service $AZURE_SPRING_APPS_INSTANCE_NAME

手动配置专用 DNS 区域

如果希望完全控制专用 DNS 区域,以下部分会介绍如何手动配置它。

查找应用程序的 IP 地址

使用以下步骤查找应用程序的 IP 地址:

  1. 转至 Azure Spring Apps 服务的“网络”页。

  2. 选择“Vnet 注入”选项卡。

  3. 在“常规信息”部分找到“终结点”并复制“IP 地址”值。 以下屏幕截图中的示例使用 IP 地址 10.0.1.6

    Azure 门户的屏幕截图,其中显示了 Vnet 注入终结点信息。

为 IP 地址添加 DNS

如果你有自己的虚拟网络 DNS 解决方案(如 Active Directory 域控制器、Infoblox 或其他),则需要将域 *.private.microservices.azure.cn 指向 IP 地址。 否则,请按照以下说明在订阅中创建 Azure 专用 DNS 区域,以将专用的 FQDN 转换/解析为其 IP 地址

注意

如果使用的是由世纪互联运营的 Microsoft Azure,请确保将本文中的 private.microservices.azure.cn 替换为 private.microservices.azure.cn。 有关详细信息,请参阅由世纪互联运营的 Microsoft Azure 开发人员指南中的检查 Azure 中的终结点部分。

创建 DNS 记录

必须在专用 DNS 区域中创建“A”类型记录。

执行以下步骤以使用专用 DNS 区域来转换/解析 DNS:

  1. 选择你创建的专用 DNS 区域资源,例如 private.microservices.azure.cn

  2. 选择“记录集”。

  3. 在“添加记录集”中,输入或选择以下信息:

    设置
    Name 输入 *
    类型 选择 A。
    TTL 输入 1
    TTL 单位 选择“小时”
    IP 地址 输入 IP 地址。 以下屏幕截图使用 IP 地址 10.1.0.7

    Azure 门户的屏幕截图,显示“添加记录集”页面。

  4. 选择“确定”

若要将专用 DNS 区域链接到虚拟网络,需要创建虚拟网络链接。

使用以下步骤将你创建的专用 DNS 区域链接到带有 Azure Spring Apps 服务的虚拟网络:

  1. 选择你创建的专用 DNS 区域资源,例如 private.microservices.azure.cn

  2. 选择“虚拟网络链接”,然后选择“添加”

  3. 对于“链接名称”,请输入“azure-spring-apps-dns-link”

  4. 对于“虚拟网络”,请选择前面创建的虚拟网络。

    Azure 门户的屏幕截图,其中显示了“添加虚拟网络链接”页。

  5. 选择“确定”

为应用程序分配专用 FQDN

在虚拟网络中配置专用 DNS 区域并部署 Azure Spring Apps 后,可以为应用程序分配专用 FQDN。 有关详细信息,请参阅在虚拟网络中部署 Azure Spring Apps

使用以下步骤分配专用 FQDN:

  1. 选择在虚拟网络中部署的 Azure Spring Apps 服务实例,并打开“应用”选项卡。

  2. 选择此应用程序以打开“概述”页面。

  3. 选择“分配终结点”,将专用 FQDN 分配给应用程序。 分配 FQDN 可能需要几分钟时间。

    Azure 门户的屏幕截图,其中显示了“概述”页,其中突出显示了“分配终结点”。

  4. 分配的专用 FQDN(标记为 URL)现在可用。 只能在专用网络中访问该 URL,而不能在 Internet 上访问该 URL。

访问应用程序的专用 FQDN

分配后,可以在专用网络中访问应用程序的专用 FQDN。 例如,可以在同一虚拟网络中创建 jumpbox 计算机,也可以在对等互连虚拟网络中创建。 然后,在该 jumpbox 或虚拟机上,可以访问专用 FQDN。

浏览器窗口中示例应用程序的屏幕截图,其中 URL 中突出显示了专用 FQDN。

清理资源

如果打算继续阅读后续文章,则可能需要保留这些资源。 如果不再需要它们,请删除资源组,这将删除资源组中的资源。 若要使用 Azure CLI 删除资源组,请使用以下命令:

az group delete --name $RESOURCE_GROUP

后续步骤