Azure 應(yīng)用服務(wù)混合連接,使用azure開發(fā)應(yīng)用程序Azure 應(yīng)用服務(wù)混合連接混合連接既是 Azure 中的一個(gè)服務(wù),也是 Azure 應(yīng)用服務(wù)中的一項(xiàng)功能。作為服務(wù),它的用途和功能超越了應(yīng)用服務(wù)中使用的功能。若要詳細(xì)了解混合連接及其在應(yīng)用服務(wù)外部的用途,請(qǐng)參閱Azure 中繼混合連接。在應(yīng)用服務(wù)中,混合連接可用......
混合連接既是 Azure 中的一個(gè)服務(wù),也是 Azure 應(yīng)用服務(wù)中的一項(xiàng)功能。作為服務(wù),它的用途和功能超越了應(yīng)用服務(wù)中使用的功能。若要詳細(xì)了解混合連接及其在應(yīng)用服務(wù)外部的用途,請(qǐng)參閱Azure 中繼混合連接。
在應(yīng)用服務(wù)中,混合連接可用于訪問任何網(wǎng)絡(luò)中的應(yīng)用程序資源,這些網(wǎng)絡(luò)可以通過端口 443 對(duì) Azure 進(jìn)行出站調(diào)用?;旌线B接提供從應(yīng)用到 TCP 終結(jié)點(diǎn)的訪問權(quán)限,而不會(huì)啟用新的訪問應(yīng)用的方式。在應(yīng)用服務(wù)中使用時(shí),每個(gè)混合連接與單個(gè) TCP 主機(jī)和端口組合相關(guān)聯(lián)。這樣,應(yīng)用就可以訪問任何 OS 上的資源,前提是它是 TCP 終結(jié)點(diǎn)?;旌线B接功能不知道、也不關(guān)心應(yīng)用程序協(xié)議或者要訪問的內(nèi)容是什么。它只提供網(wǎng)絡(luò)訪問。
混合連接要求將中繼代理部署到可以同時(shí)到達(dá)所需終結(jié)點(diǎn)和 Azure 的位置。中繼代理混合連接管理器 (HCM) 通過端口 443 調(diào)用 Azure 中繼。在 Web 應(yīng)用站點(diǎn)上,應(yīng)用服務(wù)基礎(chǔ)結(jié)構(gòu)還代表應(yīng)用程序連接到 Azure 中繼。通過已聯(lián)接的連接,應(yīng)用可以訪問所需的終結(jié)點(diǎn)。連接使用 TLS 1.2 來確保安全,使用共享訪問簽名 (SAS) 密鑰進(jìn)行身份驗(yàn)證和授權(quán)。
如果應(yīng)用發(fā)出了與配置的混合連接終結(jié)點(diǎn)匹配的 DNS 請(qǐng)求,則會(huì)通過混合連接重定向出站 TCP 流量。
備注
這意味著,始終應(yīng)該盡量為混合連接使用 DNS 名稱。如果終結(jié)點(diǎn)使用 IP 地址,某些客戶端軟件不會(huì)執(zhí)行 DNS 查找。
混合連接功能提供許多優(yōu)勢(shì),包括:
應(yīng)用可以訪問本地系統(tǒng)和服務(wù)。
該功能不需要可訪問 Internet 的終結(jié)點(diǎn)。
設(shè)置過程快速而輕松。無需網(wǎng)關(guān)
每個(gè)混合連接與單個(gè)“主機(jī):端口”組合匹配,這非常有利于安全性。
通常不需要在防火墻中開放端口。連接全部是通過標(biāo)準(zhǔn) Web 端口建立的。
由于該功能在網(wǎng)絡(luò)級(jí)別運(yùn)行,它并不知道應(yīng)用使用的語言以及終結(jié)點(diǎn)使用的技術(shù)。
可以通過單個(gè)應(yīng)用使用它在多個(gè)網(wǎng)絡(luò)中提供訪問。
它在適用于 Windows 應(yīng)用和 Linux 應(yīng)用的 GA 中受支持。Windows 容器應(yīng)用不支持該功能。
無法通過混合連接執(zhí)行的操作包括:
裝載驅(qū)動(dòng)器。
使用 UDP。
訪問使用動(dòng)態(tài)端口(例如 FTP 被動(dòng)模式或擴(kuò)展被動(dòng)模式)的基于 TCP 的服務(wù)。
支持 LDAP,因?yàn)樗赡苄枰?UDP。
支持 Active Directory,因?yàn)闊o法將應(yīng)用服務(wù)輔助角色加入域。
若要?jiǎng)?chuàng)建混合連接,請(qǐng)轉(zhuǎn)到Azure 門戶,并選擇應(yīng)用。選擇“網(wǎng)絡(luò)” “配置混合連接終結(jié)點(diǎn)”。在此處,可以看到為應(yīng)用配置的混合連接。
若要添加新的混合連接,請(qǐng)選擇“[+] 添加混合連接”。此時(shí)會(huì)顯示已創(chuàng)建的混合連接的列表。要將其中的一個(gè)或多個(gè)混合連接添加到應(yīng)用,請(qǐng)選擇所需的混合連接,然后選擇“添加選定的混合連接”。
如果想要?jiǎng)?chuàng)建新的混合連接,請(qǐng)選擇“創(chuàng)建新的混合連接”。指定:
混合連接名稱。
終結(jié)點(diǎn)主機(jī)名。
終結(jié)點(diǎn)端口。
要使用的服務(wù)總線命名空間。
每個(gè)混合連接已綁定到服務(wù)總線命名空間,每個(gè)服務(wù)總線命名空間在 Azure 區(qū)域中。請(qǐng)盡量使用應(yīng)用所在的同一區(qū)域中的服務(wù)總線命名空間,這一點(diǎn)非常重要,目的是避免網(wǎng)絡(luò)造成的延遲。
如果想要從應(yīng)用中刪除混合連接,請(qǐng)右鍵單擊該混合連接,并選擇“斷開連接”。
將混合連接添加到應(yīng)用后,選擇該混合連接即可查看其詳細(xì)信息。
除了使用應(yīng)用內(nèi)部的門戶體驗(yàn)以外,還可以在 Azure 中繼門戶中創(chuàng)建混合連接。要使混合連接可供應(yīng)用服務(wù)使用,必須:
要求客戶端授權(quán)。
提供一個(gè)名為 endpoint 的元數(shù)據(jù)項(xiàng),其中包含“主機(jī):端口”的組合作為值。
應(yīng)用服務(wù)混合連接只能在“基本”、“標(biāo)準(zhǔn)”、“高級(jí)”和“隔離”定價(jià) SKU 中使用。定價(jià)計(jì)劃沒有相關(guān)的限制。
混合連接和應(yīng)用服務(wù)計(jì)劃定價(jià)計(jì)劃在計(jì)劃中可以使用的混合連接數(shù)基本 | 每個(gè)計(jì)劃 5 個(gè) |
標(biāo)準(zhǔn) | 每個(gè)計(jì)劃 25 個(gè) |
PremiumV2 | 每個(gè)應(yīng)用 200 個(gè) |
隔離 | 每個(gè)應(yīng)用 200 個(gè) |
應(yīng)用服務(wù)計(jì)劃 UI 會(huì)顯示使用了多少個(gè)混合連接以及是由哪些應(yīng)用使用的。
選擇該混合連接可查看詳細(xì)信息??梢钥吹綉?yīng)用視圖中顯示的所有信息。還可以查看同一計(jì)劃中還有其他多少個(gè)應(yīng)用正在使用該混合連接。
可在一個(gè)應(yīng)用服務(wù)計(jì)劃中使用的混合連接終結(jié)點(diǎn)數(shù)目有限制。但是,所用的每個(gè)混合連接可在該計(jì)劃中任意數(shù)目的應(yīng)用中使用。例如,在一個(gè)應(yīng)用服務(wù)計(jì)劃下的 5 個(gè)單獨(dú)應(yīng)用中共同使用的單個(gè)混合連接,僅算作 1 個(gè)混合連接。
除了要求使用應(yīng)用服務(wù)計(jì)劃 SKU 外,使用混合連接還需要額外付費(fèi)。需要為混合連接使用的每個(gè)偵聽器付費(fèi)。偵聽器是混合連接管理器。如果你有由兩個(gè)混合連接管理器支持的五個(gè)混合連接,則將有 10 個(gè)偵聽器。有關(guān)詳細(xì)信息,請(qǐng)參閱服務(wù)總線定價(jià)。
混合連接功能要求在網(wǎng)絡(luò)中安裝一個(gè)中繼代理用于托管混合連接終結(jié)點(diǎn)。該中繼代理稱為混合連接管理器 (HCM)。若要下載 HCM,請(qǐng)?jiān)贏zure 門戶上的應(yīng)用中,選擇“網(wǎng)絡(luò)” “配置混合連接終結(jié)點(diǎn)”。
此工具可在 Windows Server 2012 和更高版本上運(yùn)行。HCM 作為服務(wù)運(yùn)行,并且在端口 443 上出站連接到 Azure 中繼。
安裝 HCM 后,可以運(yùn)行 HybridConnectionManagerUi.exe 來使用該工具的 UI。此文件位于混合連接管理器的安裝目錄中。在 Windows 10 上,也可以在搜索框中搜索“混合連接管理器 UI”即可。
啟動(dòng) HCM UI 時(shí),出現(xiàn)的第一個(gè)界面是一個(gè)表格,其中列出了為此 HCM 實(shí)例配置的所有混合連接。如果想要進(jìn)行任何更改,請(qǐng)先在 Azure 中完成身份驗(yàn)證。
要將一個(gè)或多個(gè)混合連接添加到 HCM,請(qǐng)執(zhí)行以下操作:
啟動(dòng) HCM UI。
選擇“配置另一個(gè)混合連接”。
使用 Azure 帳戶登錄,以使你的訂閱可以使用混合連接。除此之外,HCM 不會(huì)繼續(xù)使用你的 Azure 帳戶。
選擇訂閱。
選擇 HCM 要中繼的混合連接。
選擇“保存” 。
現(xiàn)在,可以看到已添加的混合連接。還可以選擇配置的混合連接查看詳細(xì)信息。
若要支持配置的混合連接,HCM 需要:
通過端口 443 對(duì) Azure 進(jìn)行 TCP 訪問。
對(duì)混合連接終結(jié)點(diǎn)進(jìn)行 TCP 訪問。
能夠在終結(jié)點(diǎn)主機(jī)和服務(wù)總線命名空間中執(zhí)行 DNS 查找。
備注
Azure 中繼的連接性依賴于 Web 套接字。此功能僅適用于 Windows Server 2012 或更高版本。因此,低于 Windows Server 2012 的版本將不支持 HCM。
每個(gè) HCM 可以支持多個(gè)混合連接。此外,多個(gè) HCM 可以支持任一給定的混合連接。默認(rèn)行為是在為任一給定終結(jié)點(diǎn)配置的 HCM 之間路由流量。如果希望從網(wǎng)絡(luò)建立的混合連接具有高可用性,可在單獨(dú)的計(jì)算機(jī)上運(yùn)行多個(gè) HCM。中繼服務(wù)用來將流量分配給各個(gè) HCM 的負(fù)載分配算法是隨機(jī)分配。
若要讓訂閱外部的某人托管給定混合連接的 HCM 實(shí)例,可與他(她)共享該混合連接的網(wǎng)關(guān)連接字符串??梢栽贏zure 門戶的“混合連接”屬性中看到網(wǎng)關(guān)連接字符串。要使用該字符串,請(qǐng)?jiān)?HCM 中選擇“手動(dòng)輸入”,并粘貼網(wǎng)關(guān)連接字符串。
我們會(huì)定期發(fā)布混合連接管理器更新來修復(fù)問題或提供改進(jìn)。當(dāng)發(fā)布升級(jí)時(shí),一個(gè)彈出窗口將顯示在 HCM UI 中。應(yīng)用升級(jí)將應(yīng)用所做的更改并重啟 HCM。
Azure CLI 支持混合連接。提供的命令可在應(yīng)用和應(yīng)用服務(wù)計(jì)劃級(jí)別上運(yùn)行。應(yīng)用級(jí)命令為:
Azure CLI
azwebapphybridconnectionGroupazwebapphybridconnection:Methodsthatlist,addandremovehybridconnectionsfromwebapps.Thiscommandgroupisinpreview.Itmaybechanged/removedinafuturerelease.Commands:add:Addahybridconnectiontoawebapp.list:Listthehybridconnectionsonawebapp.remove:Removeahybridconnectionfromawebapp.利用應(yīng)用服務(wù)計(jì)劃命令,你可以設(shè)置給定混合連接將使用的密鑰。每個(gè)混合連接上都設(shè)置了兩個(gè)密鑰,一個(gè)主密鑰和一個(gè)輔助密鑰??梢赃x擇通過以下命令使用主密鑰或輔助密鑰。這樣,你就可以在需要定期再生成密鑰時(shí)切換密鑰。
Azure CLI
azappservicehybridconnectionhelpGroupazappservicehybridconnection:Amethodthatsetsthekeyahybridconnectionuses.Thiscommandgroupisinpreview.Itmaybechanged/removedinafuturerelease.Commands:setkey:Setthekeythatallappsinanappserviceplanusetoconnecttothehybridconnectionsinthatappserviceplan.任何在基礎(chǔ) Azure 服務(wù)總線中繼上有足夠權(quán)限的用戶都可以將現(xiàn)有的混合連接添加到應(yīng)用服務(wù) Web 應(yīng)用。這意味著,如果必須阻止他人重復(fù)使用這個(gè)相同的混合連接(例如,如果目標(biāo)資源是一項(xiàng)沒有設(shè)置任何其他的安全措施來防止未經(jīng)授權(quán)的訪問的服務(wù),則必須這樣做),則必須鎖定對(duì) Azure 服務(wù)總線中繼的訪問。
可以通過Reader訪問權(quán)限來訪問中繼的任何人都將能夠看到混合連接(在嘗試通過 Azure 門戶將它添加到 Web 應(yīng)用時(shí)),但卻無法添加它,因?yàn)槿鄙贆z索用于建立中繼連接的連接字符串的權(quán)限。若要成功添加混合連接,他們必須具有l(wèi)istKeys權(quán)限 (Microsoft.Relay/namespaces/hybridConnections/authorizationRules/listKeys/action)。Contributor角色或者任何其他包含此權(quán)限(在中繼上)的角色都會(huì)允許用戶使用混合連接并將其添加到自己的 Web 應(yīng)用。
“已連接”狀態(tài)表示,至少有一個(gè) HCM 配置了該混合連接,且可以訪問 Azure。如果混合連接狀態(tài)未顯示“已連接”,則表示未在任何可訪問 Azure 的 HCM 上配置該混合連接。當(dāng) HCM 顯示 未連接 時(shí),請(qǐng)注意以下幾點(diǎn):
你的主機(jī)是否有到端口443上的 Azure 的出站訪問權(quán)限?可以使用 PowerShell 命令Testnetconnection DestinationP 端口從 HCM 主機(jī)進(jìn)行測(cè)試
你的 HCM 是否可能處于錯(cuò)誤的狀態(tài)?嘗試重啟 Azure 混合連接管理器服務(wù) 本地服務(wù)。
如果狀態(tài)顯示為 已連接,但應(yīng)用無法訪問終結(jié)點(diǎn),請(qǐng)執(zhí)行以下操作:
請(qǐng)確保在混合連接中使用 DNS 名稱。如果使用 IP 地址,則可能不會(huì)進(jìn)行所需的客戶端 DNS 查找。如果在 web 應(yīng)用中運(yùn)行的客戶端未執(zhí)行 DNS 查找,則混合連接將不起作用
檢查混合連接中使用的 DNS 名稱能否從 HCM 主機(jī)解析。使用Nslookup EndpointDNSname檢查分辨率,其中 EndpointDNSname 是與混合連接定義中使用的內(nèi)容完全匹配。
使用 PowerShell 命令Testnetconnection EndpointDNSnameP 端口測(cè)試從你的 HCM 主機(jī)到你的終結(jié)點(diǎn)的訪問權(quán)限。如果無法從 HCM 主機(jī)訪問終結(jié)點(diǎn),請(qǐng)檢查兩個(gè)主機(jī)(包括目標(biāo)主機(jī)上的任何基于主機(jī)的防火墻)之間的防火墻。
在應(yīng)用服務(wù)中,可以從 高級(jí)工具 (Kudu) 控制臺(tái)調(diào)用tcpping命令行工具。此工具可以告知你是否能夠訪問 TCP 終結(jié)點(diǎn),但不會(huì)告知你是否能夠訪問混合連接終結(jié)點(diǎn)。在控制臺(tái)中針對(duì)混合連接終結(jié)點(diǎn)使用此工具時(shí),只能確認(rèn)混合連接是否使用了“主機(jī):端口”組合。
如果你有終結(jié)點(diǎn)的命令行客戶端,則可以從應(yīng)用控制臺(tái)測(cè)試連接。例如,可以使用 curl 測(cè)試對(duì) Web 服務(wù)器終結(jié)點(diǎn)的訪問。
特別聲明:以上文章內(nèi)容僅代表作者本人觀點(diǎn),不代表ESG跨境電商觀點(diǎn)或立場(chǎng)。如有關(guān)于作品內(nèi)容、版權(quán)或其它問題請(qǐng)于作品發(fā)表后的30日內(nèi)與ESG跨境電商聯(lián)系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號(hào)密碼登錄
平臺(tái)顧問
微信掃一掃
馬上聯(lián)系在線顧問
小程序
ESG跨境小程序
手機(jī)入駐更便捷
返回頂部