【Azure 應用服務】App Service與APIM同時集成到同一個虛擬網絡後,如何經過內網訪問內部VNET的APIM呢?

問題描述

App Service訪問的APIM已配置內部虛擬網絡(Internal VNet)並擁有內網IP地址。App Service與APIM都在相同的虛擬網絡(VNET)中。App Service如何經過內網訪問APIM呢?是否須要在虛擬網絡中添加自定義DNS服務進行域名解析呢?web

問題答案

是的,因爲APIM配置的是內部虛擬網絡,它只能接收從虛擬網絡內部發送的請求,而沒法接受從公網(Internet)發送的請求。因此App Service須要訪問APIM,須要走內部虛擬網絡的鏈路。同時,因爲APIM的訪問是經過域名訪問,因此也必須須要DNS服務器來解析內網IP地址。api

在App Service端須要的配置爲服務器

  • WEBSITE_VNET_ROUTE_ALL 設置爲 1,讓App Service全部的出站流量均可以被髮送到 VNET中

 

在VNET中爲APIM配置DNS記錄網絡

假設APIM的內部虛擬 IP 地址爲 10.1.0.5,且APIM的名稱爲contosointernalvnet,則須要在DNS中配置如下指向的DNS A記錄:app

  • 10.1.0.5 contosointernalvnet.azure-api.cnspa

  • 10.1.0.5 contosointernalvnet.portal.azure-api.cn.net

  • 10.1.0.5 contosointernalvnet.developer.azure-api.cn3d

  • 10.1.0.5 contosointernalvnet.management.azure-api.cn代理

  • 10.1.0.5 contosointernalvnet.scm.azure-api.cnblog

 

參考資料

將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 集成的工做原理

啓用區域 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 記錄並從虛擬網絡中的任何位置訪問這些終結點。

相關文章
相關標籤/搜索