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端須要的配置爲服務器
在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 中的 VM 那樣,訪問位於 VNet 中或經過 VNet 傳輸的大多數內容。 網絡實現不一樣於在 VNet 中運行 VM。 這就是一些網絡功能尚不可用於此功能的緣由。
啓用區域 VNet 集成後,應用經過往常所用的通道對 Internet 進行出站調用。 應用屬性門戶中列出的出站地址是應用仍然在使用的地址。 就應用而言,變化在於:對服務終結點保護服務的調用或者 RFC 1918 地址進入 VNet 中。 若是 WEBSITE_VNET_ROUTE_ALL 設置爲 1,全部出站流量均可以被髮送到 VNet 中。
若是 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 記錄並從虛擬網絡中的任何位置訪問這些終結點。