你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
将 DNS 名称映射到同一虚拟网络内多个 Azure Spring Apps 服务实例中的应用程序
注意
基本、标准和企业计划将从 2025 年 3 月中旬开始弃用,停用期为 3 年。 建议转换到 Azure 容器应用。 有关详细信息,请参阅 Azure Spring Apps 停用公告。
标准消耗和专用计划将于 2024 年 9 月 30 日开始弃用,并在六个月后完全关闭。 建议转换到 Azure 容器应用。 有关详细信息,请参阅将 Azure Spring Apps 标准消耗和专用计划迁移到 Azure 容器应用。
本文适用于:✔️ 基本版/标准版 ✔️ 企业版
本文介绍如何将域名系统 (DNS) 名称映射到应用程序,以访问同一虚拟网络中的多个 Azure Spring Apps 服务实例。
先决条件
- Azure 订阅。 如果你没有订阅,请在开始之前创建一个免费帐户。
- Azure CLI 版本 2.45.0 或更高版本。 使用以下命令安装 Azure Spring Apps 扩展:
az extension add --name spring
- 部署在 Azure Spring Apps 实例中的虚拟网络。 有关详细信息,请参阅在 Azure 虚拟网络(VNet 注入)中部署 Azure Spring Apps。
概述
本文介绍以下两种将 DNS 名称映射到应用程序的方法:
使用 Microsoft 提供的完全限定的域名 (FQDN)。
与自定义域方法相比,此方法是映射 DNS 名称的一种相对简单且轻量的方法。 如果 DNS 区域中不需要通配符方法,建议使用此方法。
此方法需要每个应用程序都有一个 DNS 记录。
使用自定义域。
如果已有自定义域,或者希望在多实例场景中使用通配符方法,请使用此方法。
此方法需要每个 Azure Spring Apps 服务实例的 DNS 记录,以及为每个应用程序配置的自定义域。
例如,本文使用 azure-spring-apps-1
和 azure-spring-apps-2
作为同一虚拟网络内两个 Azure Spring Apps 实例的名称。
从 DNS 映射的预备步骤部分开始,然后继续执行首选方法:
最后,测试映射,如访问专用应用程序的专用 FQDN URL 部分中所述。
DNS 映射的预备步骤
请完成本部分的映射 DNS 名称的 FQDN 和自定义域方法的步骤。
查找应用程序 IP 地址
这两种方法都需要要映射的 Azure Spring Apps 实例中每个应用程序的 IP 地址。 请使用以下步骤来查找 IP 地址:
创建专用 DNS 区域
使用以下步骤为专用网络中的应用程序创建专用 DNS 区域。
注意
如果使用的是由世纪互联运营的 Microsoft Azure,请将本文中的 private.azuremicroservices.io
替换为 private.microservices.azure.cn
。 有关详细信息,请参阅检查 Azure 中的终结点。
在 Azure 主页上,搜索“专用 DNS 区域”。
在“专用 DNS 区域”页上,选择“创建”。
填写“创建专用 DNS 区域”页上的表单。 在“名称”的“实例详细信息”中,指定
private.azuremicroservices.io
作为专用 DNS 区域的名称。选择“查看并创建”。
选择“创建” 。
创建区域可能需要几分钟。
链接虚拟网络
若要将创建的专用 DNS 区域链接到虚拟网络,必须创建虚拟网络链接。
请执行以下步骤来创建此链接:
导航到之前创建的名为
private.azuremicroservices.io
的专用 DNS 区域。 可能有多个名称相同,因此请通过其资源组和订阅确定正确的名称。在导航窗格中,选择“虚拟网络链接”,然后选择“添加”。
对于“链接名称”,请输入“azure-spring-apps-dns-link”。
对于“虚拟网络”,请选择为先决条件创建的虚拟网络。
选择“确定”。
为应用程序分配专用 FQDN
为应用程序分配专用 FQDN。
使用以下步骤通过分配的终结点更新应用:
使用 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 记录:
根据需要重复上述步骤,为其他应用程序添加 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 实例中的每个应用程序:
打开 Azure Spring Apps 实例,在导航窗格中选择“应用”。
在“应用”页上,选择一个应用程序。
在导航窗格中选择“自定义域”。
选择“添加自定义域”。
在“添加自定义域”窗格中,输入要使用的 FQDN,并确保它与以后用于 TLS/SSL 绑定的证书相对应。 本示例使用
hello-vnet.azure-spring-apps-1.private.azuremicroservices.io
。 可以忽略 CNAME 部分。选择“验证”。
如果经过验证,请选择“添加”。
自定义域成功映射到应用后,将显示在自定义域表中。
注意
自定义域的“TLS/SSL 状态值”为“不安全”意味着该域尚未绑定到 TLS/SSL 证书。 从浏览器向自定义域发出任何 HTTPS 请求都会收到错误或警告。
添加 TLS/SSL 绑定
在执行此步骤之前,请确保已准备好证书并将其导入 Azure Spring Apps。 有关详细信息,请参阅将现有的自定义域映射到 Azure Spring Apps。
使用以下步骤通过证书更新应用的自定义域:
打开 Azure Spring Apps 实例,在导航窗格中选择“应用”。
在“应用”页上,选择一个应用程序。
在导航窗格中选择“自定义域”。
选择自定义域的省略号 (...) 按钮,然后选择“绑定 TLS/SSL”。
在“TLS/SSL 绑定”窗格中,选择“证书”,然后选择或导入证书。
选择“保存”。
成功添加 TLS/SSL 绑定后,域状态将是安全的,如“TLS/SSL 状态”值“正常”所示。
为所有应用程序配置自定义域
若要使用专用 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 记录:
根据需要重复此操作,为其他应用程序配置自定义域。
访问应用程序的专用 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:
以下屏幕截图显示了使用自定义域的 Spring 应用程序的 URL:
清理资源
如果打算继续阅读后续文章,则可能需要保留这些资源。 如果不再需要资源组,可以将其删除,这将删除资源组中的资源。 若要使用 Azure CLI 删除资源组,请使用以下命令:
az group delete --name $RESOURCE_GROUP