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

将 DNS 名称映射到同一虚拟网络内多个 Azure Spring Apps 服务实例中的应用程序

注意

Azure Spring Apps 是 Azure Spring Cloud 服务的新名称。 虽然该服务有新名称,但一些地方仍会使用旧名称,我们仍在更新屏幕截图、视频和图形等资产。

本文适用于:✔️ 基本版/标准版 ✔️ 企业版

本文介绍如何将域名系统 (DNS) 名称映射到应用程序,以访问同一虚拟网络中的多个 Azure Spring Apps 服务实例。

先决条件

概述

本文介绍以下两种将 DNS 名称映射到应用程序的方法:

  • 使用 Microsoft 提供的完全限定的域名 (FQDN)。

    与自定义域方法相比,此方法是映射 DNS 名称的一种相对简单且轻量的方法。 如果 DNS 区域中不需要通配符方法,建议使用此方法。

    此方法需要每个应用程序都有一个 DNS 记录。

  • 使用自定义域。

    如果已有自定义域,或者希望在多实例场景中使用通配符方法,请使用此方法。

    此方法需要每个 Azure Spring Apps 服务实例的 DNS 记录,以及为每个应用程序配置的自定义域。

例如,本文使用 azure-spring-apps-1azure-spring-apps-2 作为同一虚拟网络内两个 Azure Spring Apps 实例的名称。

DNS 映射的预备步骤部分开始,然后继续执行首选方法:

最后,测试映射,如访问专用应用程序的专用 FQDN URL 部分中所述。

DNS 映射的预备步骤

请完成本部分的映射 DNS 名称的 FQDN 和自定义域方法的步骤。

查找应用程序 IP 地址

这两种方法都需要要映射的 Azure Spring Apps 实例中每个应用程序的 IP 地址。 请使用以下步骤来查找 IP 地址:

  1. 导航到为 Azure Spring Apps 实例创建的虚拟网络,然后在导航窗格中选择“已连接的设备”。

  2. 在“已连接的设备”页上,搜索“kubernetes-internal”。

  3. 在搜索结果中,找到连接到 Azure Spring Apps 服务实例的服务运行时“子网”的每个“设备”,并复制其“IP 地址”。 在以下屏幕截图示例中,azure-spring-apps-1 的 IP 地址为 10.1.0.6azure-spring-apps-2 的 IP 地址为 10.1.2.6

    Screenshot of the Azure portal showing the Connected devices page for a virtual network, highlighting the devices with a service runtime subnet.

创建专用 DNS 区域

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

注意

如果使用的是由世纪互联运营的 Microsoft Azure,请将本文中的 private.azuremicroservices.io 替换为 private.microservices.azure.cn。 有关详细信息,请参阅检查 Azure 中的终结点

  1. 在 Azure 主页上,搜索“专用 DNS 区域”。

  2. 在“专用 DNS 区域”页上,选择“创建”。

  3. 填写“创建专用 DNS 区域”页上的表单。 在“名称”的“实例详细信息”中,指定 private.azuremicroservices.io 作为专用 DNS 区域的名称。

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

  5. 选择“创建” 。

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

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

请执行以下步骤来创建此链接:

  1. 导航到之前创建的名为 private.azuremicroservices.io 的专用 DNS 区域。 可能有多个名称相同,因此请通过其资源组和订阅确定正确的名称。

  2. 在导航窗格中,选择“虚拟网络链接”,然后选择“添加”。

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

  4. 对于“虚拟网络”,请选择为先决条件创建的虚拟网络。

    Screenshot of the Azure portal showing the Add virtual network link page for a private DNS zone.

  5. 选择“确定”

为应用程序分配专用 FQDN

为应用程序分配专用 FQDN。

使用以下步骤通过分配的终结点更新应用:

  1. 导航到虚拟网络中部署的 Azure Spring Apps 实例,然后在导航窗格中选择“应用”。

  2. 选择应用程序。

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

    Screenshot of the Azure portal showing the Overview page for an app with Assign endpoint highlighted.

  4. 针对要映射的每个应用程序重复上述步骤。

使用 Microsoft 提供的 FQDN 进行 DNS 映射

如果使用此方法,在使用 Microsoft 提供的完全限定的域名 (FQDN) 时,必须根据要求为每个应用程序创建一个 DNS 记录。 若要深入了解此过程,请参阅在专用网络中访问应用程序

在虚拟网络中部署具有已分配终结点的 Azure Spring Apps 服务实例中的应用程序时,该终结点为专用 FQDN。 默认情况下,完全限定的域名对于服务实例中的每个应用都是唯一的。 FQDN 格式为 <service-name>-<app-name>.private.azuremicroservices.io

为所有应用程序创建 DNS 记录

若要使用专用 DNS 区域转换和解析 DNS 名称,必须在该区域中为每个应用程序创建一个“A”类型记录。 在此示例中,应用名称为 hello-vnet,Azure Spring Apps 服务实例名称为 azure-spring-apps-1

需要每个应用程序的 IP 地址。 按照在专用网络中访问应用程序的“查找应用程序的 IP”部分中的说明复制 IP 地址。 在此示例中,IP 地址为 10.1.0.6

使用以下步骤创建 DNS 记录:

  1. 导航到之前创建的专用 DNS 区域:private.azuremicroservices.io

  2. 选择“记录集”。

  3. 在“添加记录集”窗格中,输入下表中的值。

    设置
    名称 azure-spring-apps-1-hello-vnet
    类型 A
    TTL 1
    TTL 单位 小时数
    IP 地址 (从剪贴板粘贴)
  4. 选择“确定”

    Screenshot of the Azure portal showing the Add record set pane in a Private DNS zone.

根据需要重复上述步骤,为其他应用程序添加 DNS 记录。

使用自定义域进行 DNS 映射

使用此方法,只需为每个 Azure Spring Apps 实例添加一个 DNS 记录,但必须为每个应用程序配置自定义域。 若要深入了解此过程,请参阅将现有自定义域映射到 Azure Spring Apps

此示例重复使用专用 DNS 区域 private.azuremicroservices.io 以添加与自定义域相关的 DNS 记录。 专用 FQDN 的格式为 <app-name>.<service-name>.private.azuremicroservices.io

从技术上讲,可以使用所需的任何专用完全限定的域名。 在这种情况下,必须创建一个与所选完全限定的域名对应的新专用 DNS 区域。

将自定义域映射到 Azure Spring Apps 实例中的应用

使用以下步骤将自定义域映射到 Azure Spring Apps 实例中的每个应用程序:

  1. 打开 Azure Spring Apps 实例,在导航窗格中选择“应用”。

  2. 在“应用”页上,选择一个应用程序。

  3. 在导航窗格中选择“自定义域”。

  4. 选择“添加自定义域”。

  5. 在“添加自定义域”窗格中,输入要使用的 FQDN,并确保它与以后用于 TLS/SSL 绑定的证书相对应。 本示例使用 hello-vnet.azure-spring-apps-1.private.azuremicroservices.io。 可以忽略 CNAME 部分。

  6. 选择“验证”。

  7. 如果经过验证,请选择“添加”。

    Screenshot of the Azure portal showing the Add custom domain pane for an app in an Azure Spring Apps instance.

自定义域成功映射到应用后,将显示在自定义域表中。

Screenshot of the Azure portal showing the custom domain table in the Custom domain page for an app.

注意

自定义域的“TLS/SSL 状态值”为“不安全”意味着该域尚未绑定到 TLS/SSL 证书。 从浏览器向自定义域发出任何 HTTPS 请求都会收到错误或警告。

添加 TLS/SSL 绑定

在执行此步骤之前,请确保已准备好证书并将其导入 Azure Spring Apps。 有关详细信息,请参阅将现有的自定义域映射到 Azure Spring Apps

使用以下步骤通过证书更新应用的自定义域:

  1. 打开 Azure Spring Apps 实例,在导航窗格中选择“应用”。

  2. 在“应用”页上,选择一个应用程序。

  3. 在导航窗格中选择“自定义域”。

  4. 选择自定义域的省略号 (...) 按钮,然后选择“绑定 TLS/SSL”。

  5. 在“TLS/SSL 绑定”窗格中,选择“证书”,然后选择或导入证书。

  6. 选择“保存”。

    Screenshot of the Azure portal showing the TLS/SSL binding pane on the Custom domain page for an app.

成功添加 TLS/SSL 绑定后,域状态将是安全的,如“TLS/SSL 状态”值“正常”所示。

Screenshot of the Azure portal showing a custom domain in a healthy state on the Custom domain page.

为所有应用程序配置自定义域

若要使用专用 DNS 区域转换和解析 DNS 名称,必须在该区域中为每个 Azure Spring Apps 服务实例创建一个“A”类型记录。 在此示例中,应用名称为 hello-vnet,Azure Spring Apps 服务实例名称为 azure-spring-apps-1

需要每个应用程序的 IP 地址。 按照在专用网络中访问应用程序的“查找应用程序的 IP”部分中的说明复制 IP 地址。 在此示例中,IP 地址为 10.1.0.6

使用以下步骤在 DNS 区域中创建 A 记录:

  1. 导航到之前创建的专用 DNS 区域:private.azuremicroservices.io

  2. 选择“记录集”。

  3. 在“添加记录集”窗格中,输入下表中的值。

    设置
    名称 *.azure-spring-apps-1
    类型 A
    TTL 1
    TTL 单位 小时数
    IP 地址 (从剪贴板粘贴)
  4. 选择“确定”

    Screenshot of the Azure portal showing Overview page for a private DNS zone with the add record set pane open.

根据需要重复此操作,为其他应用程序配置自定义域。

访问应用程序的专用 FQDN

完成这两种方法的 FQDN 分配和 DNS 映射后,可以在专用网络中访问应用程序的所有专用 FQDN。 例如,可以在同一虚拟网络或对等虚拟网络中创建 jumpbox 或虚拟机,并且有权访问应用程序的所有专用 FQDN。

以下示例演示 FQDN 方法:

  • https://hello-vnet.azure-spring-apps-1.private.azuremicroservices.io
  • https://hello-vnet.azure-spring-apps-2.private.azuremicroservices.io

以下示例演示自定义域方法:

  • https://azure-spring-apps-1-hello-vnet.private.azuremicroservices.io
  • https://azure-spring-apps-2-hello-vnet.private.azuremicroservices.io

以下屏幕截图显示了使用 FQDN 的 Spring 应用程序的 URL:

Screenshot of a Spring application accessed by a URL using an FQDN.

以下屏幕截图显示了使用自定义域的 Spring 应用程序的 URL:

Screenshot of a Spring application accessed by a URL using a custom domain.

清理资源

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

az group delete --name $RESOURCE_GROUP

后续步骤