【Azure 应用服务】App Service与APIM同时集成到同一个虚拟网络后,如何通过内网访问内部VNET的APIM呢?

简介: 【Azure 应用服务】App Service与APIM同时集成到同一个虚拟网络后,如何通过内网访问内部VNET的APIM呢?

问题描述

App Service访问的APIM已配置内部虚拟网络(Internal VNet)并拥有内网IP地址。App Service与APIM都在相同的虚拟网络(VNET)中。App Service如何通过内网访问APIM呢?是否需要在虚拟网络中添加自定义DNS服务进行域名解析呢?

问题答案

是的,由于APIM配置的是内部虚拟网络,它只能接收从虚拟网络内部发送的请求,而无法接受从公网(Internet)发送的请求。所以App Service需要访问APIM,需要走内部虚拟网络的链路。同时,由于APIM的访问是通过域名访问,所以也必须需要DNS服务器来解析内网IP地址。

在App Service端需要的配置为

  • WEBSITE_VNET_ROUTE_ALL 设置为 1,让App Service所有的出站流量都可以被发送到 VNET中

 

在VNET中为APIM配置DNS记录

假设APIM的内部虚拟 IP 地址为 10.1.0.5,且APIM的名称为contosointernalvnet,则需要在DNS中配置以下指向的DNS A记录:

  • 10.1.0.5 contosointernalvnet.azure-api.cn
  • 10.1.0.5 contosointernalvnet.portal.azure-api.cn
  • 10.1.0.5 contosointernalvnet.developer.azure-api.cn
  • 10.1.0.5 contosointernalvnet.management.azure-api.cn
  • 10.1.0.5 contosointernalvnet.scm.azure-api.cn

 

参考资料

将App Service应用与 Azure 虚拟网络集成:https://docs.azure.cn/zh-cn/app-service/web-sites-integrate-with-vnet#azure-dns-private-zones

在内部虚拟网络中使用 Azure API 管理服务:https://docs.azure.cn/zh-cn/api-management/api-management-using-with-internal-vnet

 

附录信息

区域 VNet 集成的工作原理

应用服务中的应用托管在辅助角色上。 基本和更高的定价计划是专用托管计划,其中不会有任何其他客户的工作负载在同一辅助角色上运行。 区域 VNet 集成通过使用委托子网中的地址装载虚拟接口实现。 发送地址位于 VNet 中,因此它可以像 VNet 中的 VM 那样,访问位于 VNet 中或通过 VNet 传输的大多数内容。 网络实现不同于在 VNet 中运行 VM。 这就是一些网络功能尚不可用于此功能的原因。

启用区域 VNet 集成后,应用通过往常所用的通道对 Internet 进行出站调用。 应用属性门户中列出的出站地址是应用仍然在使用的地址。 就应用而言,变化在于:对服务终结点保护服务的调用或者 RFC 1918 地址进入 VNet 中。 如果 WEBSITE_VNET_ROUTE_ALL 设置为 1,所有出站流量都可以被发送到 VNet 中。

 

DNS 配置

如果 API 管理采用外部虚拟网络模式,则 DNS 由 Azure 管理。 使用内部虚拟网络模式时,必须自行管理 DNS。

  • 备注:API 管理服务不会侦听来自 IP 地址的请求, 它只响应到发往其服务终结点上配置的主机名的请求。 这些终结点包括网关、Azure 门户和开发人员门户、直接管理终结点和 Git。

基于默认主机名的访问权限

创建 API 管理服务(例如“contosointernalvnet”)时,将默认配置以下服务终结点:

  • 网关或代理:contosointernalvnet.azure-api.net
  • 开发人员门户:contosointernalvnet.portal.azure-api.cn
  • 新开发人员门户:contosointernalvnet.developer.azure-api.cn
  • 直接管理终结点:contosointernalvnet.management.azure-api.cn
  • Git:contosointernalvnet.scm.azure-api.net

若要访问这些 API 管理服务终结点,可以在连接到虚拟网络(其中部署了 API 管理)的子网中创建虚拟机。 假设服务的内部虚拟 IP 地址为 10.1.0.5,则可映射 hosts 文件 (%SystemDrive%\drivers\etc\hosts),如下所示:

  • 10.1.0.5 contosointernalvnet.azure-api.cn
  • 10.1.0.5 contosointernalvnet.portal.azure-api.cn
  • 10.1.0.5 contosointernalvnet.developer.azure-api.cn
  • 10.1.0.5 contosointernalvnet.management.azure-api.cn
  • 10.1.0.5 contosointernalvnet.scm.azure-api.cn

然后即可从创建的虚拟机访问所有服务终结点。 如果在虚拟网络中使用自定义 DNS 服务器,则还可创建 DNS 记录并从虚拟网络中的任何位置访问这些终结点。

相关文章
|
3月前
|
域名解析 网络协议 API
【Azure Container App】配置容器应用的缩放规则 Managed Identity 连接中国区 Azure Service Bus 问题
本文介绍了在 Azure Container Apps 中配置基于自定义 Azure Service Bus 的自动缩放规则时,因未指定云环境导致的域名解析错误问题。解决方案是在扩展规则中添加 `cloud=AzureChinaCloud` 参数,以适配中国区 Azure 环境。内容涵盖问题描述、原因分析、解决方法及配置示例,适用于使用 KEDA 实现事件驱动自动缩放的场景。
|
4月前
|
Linux Shell 网络安全
【Azure App Service】使用 tcpping 来获取App Service的网络状态并把结果保存到文本文件中
本文针对云服务使用中网络状态抖动的问题,以Azure App Service为例,介绍如何利用其自带的`tcpping`工具检测网络连通性。通过在Windows或Linux版App Service中执行`tcpping`命令,将结果输出至文本文件,分析timeout行数以判断网络抖动的时间点。文章还提供了具体操作步骤、效果图及参考资料,帮助用户高效排查网络问题。
169 47
|
开发工具 数据安全/隐私保护 安全
远程调试 Azure Web App
当我们将 Web App 部署在 Azure 上时,如果能够实现远程调试,将会极大的提高我们修复 bug 的效率。Visual Studio 一贯以功能强大、易用著称,当然可以实现基于 Azure 应用的创建、发布和调试。
1232 0
|
14天前
|
移动开发 小程序 Android开发
基于 uni-app 开发的废品回收类多端应用功能与界面说明
本文将对一款基于 uni-app 开发的废品回收类多端应用,从多端支持范围、核心功能模块及部分界面展示进行客观说明,相关资源信息也将一并呈现。
48 0
|
3月前
|
人工智能 文字识别 小程序
旅游社用什么工具收报名 + 资料?不开发 App 也能自动收集信息
本文探讨了旅游行业中报名信息收集的常见痛点及解决方案,重点介绍了二维码表单工具在提升信息收集效率、简化操作流程方面的优势。通过对比多种工具,分析其适用场景与实际应用逻辑,为一线旅游从业者提供高效、低成本的执行参考。

热门文章

最新文章

  • 1
    iOS|记一名 iOS 开发新手的前两次 App 审核经历
    159
  • 2
    flutter3-wetrip跨平台自研仿携程app预约酒店系统模板
    225
  • 3
    通过外部链接启动 Flutter App(详细介绍及示例)
    295
  • 4
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    230
  • 5
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    246
  • 6
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    262
  • 7
    【Azure Function】Function App门户上的Test/Run返回错误:Failed to fetch
    164
  • 8
    小游戏源码开发之可跨app软件对接是如何设计和开发的
    186
  • 9
    原生鸿蒙版小艺APP接入DeepSeek-R1,为HarmonyOS应用开发注入新活力
    648
  • 10
    PiliPala:开源项目真香,B站用户狂喜!这个开源APP竟能自定义主题+去广告?PiliPala隐藏功能大揭秘
    343