你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在虚拟网络中排查 Azure Spring Apps 的问题
注意
基本、标准和企业计划将从 2025 年 3 月中旬开始弃用,停用期为 3 年。 建议转换到 Azure 容器应用。 有关详细信息,请参阅 Azure Spring Apps 停用公告。
标准消耗和专用计划将于 2024 年 9 月 30 日开始弃用,并在六个月后完全关闭。 建议转换到 Azure 容器应用。 有关详细信息,请参阅将 Azure Spring Apps 标准消耗和专用计划迁移到 Azure 容器应用。
本文适用于:✔️ 基本版/标准版 ✔️ 企业版
本文帮助你解决在虚拟网络中使用 Azure Spring Apps 时可能出现的各种问题。
我在创建 Azure Spring Apps 服务实例时遇到了问题
若要创建 Azure Spring Apps 实例,必须具有将该实例部署到虚拟网络的足够权限。 Azure Spring Apps 服务实例必须自行为 Azure Spring Apps 服务授予对虚拟网络的权限。 有关更多信息,请参阅在虚拟网络中部署 Azure Spring Apps 的向服务授予虚拟网络权限部分。
如果使用 Azure 门户设置 Azure Spring Apps 服务实例,则 Azure 门户会验证权限。
若要使用 Azure CLI 设置 Azure Spring Apps 服务实例,请验证以下要求:
- 订阅处于活动状态。
- 此位置支持 Azure Spring Apps。
- 已创建实例的资源组。
- 资源名称符合命名规则。 该名称只能包含小写字母、数字和连字符。 第一个字符必须是字母。 最后一个字符必须是字母或数字。 该值必须包含 2 到 32 个字符。
若要使用资源管理器模板设置 Azure Spring Apps 服务实例,请参阅了解 Azure 资源管理器模板的结构和语法。
常见创建问题
错误消息 | 如何解决 |
---|---|
Resources created by Azure Spring Apps were disallowed by policy. |
在你自己的虚拟网络中部署 Azure Spring Apps 时,会创建网络资源。 请务必检查是否已定义 Azure Policy 来阻止该创建操作。 错误消息列出了未创建的资源。 |
Required traffic is not allowlisted. |
请务必查看在虚拟网络中运行 Azure Spring Apps 的客户职责,以确保将所需的流量加入允许列表。 |
无法注册我的应用程序,或者其无法从 Config Server 获取设置
在 Azure Spring Apps 用户群集中运行的应用程序需要通过 <service-instance-name>.svc.private.azuremicroservices.io
域访问系统运行时群集中的 Eureka Server 和 Config Server。
如果虚拟网络已配置了自定义 DNS 设置,则会出现此问题。 在这种情况下,Azure Spring Apps 使用的专用 DNS 区域无效。 请在自定义 DNS 服务器中将 Azure DNS IP 168.63.129.16 作为上游 DNS 服务器进行添加。
如果自定义 DNS 服务器无法添加 Azure DNS IP 168.63.129.16
作为上游 DNS 服务器,请将 DNS 记录 *.svc.private.azuremicroservices.io
添加到应用程序的 IP。 有关详细信息,请参阅在虚拟网络中访问 Azure Spring Apps 中的应用的查找应用程序 IP 地址部分。
无法访问虚拟网络中的应用程序的终结点或测试终结点
如果虚拟网络配置了自定义 DNS 设置,请务必将 Azure DNS IP 168.63.129.16
添加为自定义 DNS 服务器中的上游 DNS 服务器(如果尚未添加)。 然后,继续按照以下说明操作。
如果虚拟网络未配置自定义 DNS 设置,或者虚拟网络配置了自定义 DNS 设置,且已添加 Azure DNS IP 168.63.129.16
作为自定义 DNS 服务器中的上游 DNS 服务器,请完成以下步骤:
创建新的专用 DNS 区域
private.azuremicroservices.io
。将专用 DNS 区域链接到虚拟网络。
添加以下两条 DNS 记录:
*.private.azuremicroservices.io
-> 应用程序的 IP。*.test.private.azuremicroservices.io
-> 应用程序的 IP。
有关详细信息,请参阅在专用网络中访问应用程序
我无法从公用网络访问应用程序的公共终结点
Azure Spring Apps 支持使用公共终结点将应用程序公开到 Internet。 有关详细信息,请参阅将 Azure Spring Apps 上的应用程序从公用网络公开到 Internet。
如果使用用户定义的路由功能,则某些功能会因为非对称路由不受支持。 有关不支持的功能,请参阅以下列表:
- 使用公用网络通过公共终结点访问应用程序。
- 使用公用网络访问日志流。
- 使用公用网络访问应用控制台。
有关详细信息,请参阅控制 Azure Spring Apps 实例的出口流量。
在将出口流量路由到防火墙时,类似限制也适用于 Azure Spring Apps。 出现此问题的原因是这两种情况都会引入非对称路由到群集中。 数据包到达终结点的公共 IP 地址,但通过专用 IP 地址返回到防火墙。 因此,防火墙必须阻止此类流量。 有关详细信息,请参阅在虚拟网络中部署 Azure Spring Apps 的自带路由表部分。
如果将出口流量路由到防火墙,但还需要将应用程序公开到 Internet,请使用 TLS 终止功能将应用程序公开到 Internet。 有关详细信息,请参阅在应用程序网关处使用 TLS 终止向 Internet 公开应用程序。