Azure 中的 IP 位址 中的 IP 位址
本文說明下列與函式應用程式 IP 位址相關的概念:
- 尋找函式應用程式目前使用的 IP 位址。
- 導致函式應用程式 IP 位址變更的條件。
- 限制可以存取函式應用程式的 IP 位址。
- 定義函式應用程式專用的 IP 位址。
IP 位址與函式應用程式相關聯,而非與個別函式相關聯。 傳入 HTTP 要求無法使用輸入 IP 位址來呼叫個別的函式;其必須使用預設網域名稱 (functionappname.azurewebsites.net) 或自訂網域名稱。
函式應用程式輸入 IP 位址
每個函式應用程式都會使用單一輸入 IP 位址來啟動。 當在取用或進階方案下執行時,隨著事件驅動的擴展發生,可能會新增額外的輸入 IP 位址。 若要尋找應用程式所使用的輸入 IP 位址,請使用本機電腦的 nslookup
公用程式,如下列範例所示:
nslookup <APP_NAME>.azurewebsites.net
在這個範例,請用函數應用程式名稱取代 <APP_NAME>
。 如果您的應用程式使用自訂網域名稱,請針對該自訂網域名稱改用 nslookup
。
函式應用程式輸出 IP 位址
每個函式應用程式都有一組可用的輸出 IP 位址。 任何來自應用程式的輸出連線 (例如連往後端資料庫) 都會使用其中一個可用的輸出 IP 位址作為來源 IP 位址。 您事先不知道指定的連線會使用哪個 IP 位址。 基於這個理由,您的後端服務必須對函式應用程式的所有輸出 IP 位址開啟其防火牆。
提示
針對某些平台等級功能,例如 Key Vault 參考,來源 IP 可能不是其中一個輸出 IP,而且您不應該將目標資源設定為採用這些特定位址。 建議應用程式改用虛擬網路整合,因為平台會透過該網路將流量路由傳送至目標資源。
若要尋找函式應用程式可用的輸出 IP 位址:
- 登入到 Azure 資源總。
- 選取 [訂用帳戶]> {您的訂用帳戶} > [提供者] > [Microsoft.Web] > [網站]。
- 在 JSON 面板中,尋找
id
屬性結尾是函式應用程式名稱的網站。 - 請參閱
outboundIpAddresses
和possibleOutboundIpAddresses
。
函式應用程式目前可用的一組 outboundIpAddresses
。 這組 possibleOutboundIpAddresses
包含只有當函式應用程式調整為其他定價層時才可用的 IP 位址。
注意
當執行取用方案或進階方案的函式應用程式進行調整時,可能會指派新的輸出 IP 位址範圍。 在上述任一方案上執行時,您無法依賴回報的輸出 IP 位址來建立明確的允許清單。 若要能夠包含動態調整期間使用的所有潛在輸出位址,您必須將整個資料中心新增至您的允許清單。
資料中心輸出 IP 位址
如果您需要將函式應用程式所使用的輸出 IP 位址新增至允許清單,另一個選項是將函式應用程式的資料中心 (Azure 區域) 新增至允許清單。 您可以下載 JSON 檔案,其中列出所有 Azure 資料中心的 IP 位址。 然後尋找套用至函式應用程式執行之區域的 JSON 片段。
例如,下列 JSON 片段是西歐允許清單的外觀:
{
"name": "AzureCloud.westeurope",
"id": "AzureCloud.westeurope",
"properties": {
"changeNumber": 9,
"region": "westeurope",
"platform": "Azure",
"systemService": "",
"addressPrefixes": [
"13.69.0.0/17",
"13.73.128.0/18",
... Some IP addresses not shown here
"213.199.180.192/27",
"213.199.183.0/24"
]
}
}
如需有關此檔案何時更新和 IP 位址何時變更的資訊,請展開下載中心頁面的 [詳細資料] 區段。
輸入 IP 位址變更
當您執行下列動作時,輸入 IP 位址可能會變更:
- 刪除函式應用程式,並在不同的資源群組中重新建立。
- 刪除資源群組和區域組合中的最後一個函數應用程式,然後重新建立它。
- 刪除 TLS 繫結,例如在憑證更新期間。
當函式應用程式在取用方案或進階方案中執行時,即使您尚未採取任何動作,例如上述動作,輸入 IP 位址也可能會改變。
輸出 IP 位址變更
輸出 IP 位址的相對穩定性取決於主控方案。
取用和進階方案
由於自動調整行為,輸出 IP 可以隨時在取用方案或進階方案中執行時變更。
如果您需要控制函式應用程式的輸出 IP 位址,例如當您需要將其新增至允許清單時,請考慮在進階主控方案中執行時實作虛擬網路 NAT 閘道。 您也可以在專用 (App Service) 方案中執行來完成此操作。
專用方案
在專用 (App Service) 方案中執行時,函式應用程式的一組可用輸出 IP 位址可能會在下列情況下變更:
- 採取任何可變更輸入 IP 位址的動作。
- 變更您的專用 (App Service) 方案定價層。 您的應用程式可使用的所有可能輸出 IP 位址清單 (適用於所有定價層) 位於
possibleOutboundIPAddresses
屬性中。 請參閱尋找輸出 IP。
強制輸出 IP 位址變更
使用下列程序,在專用 (App Service) 方案中刻意強制輸出 IP 位址變更:
在標準與進階 v2 定價層之間,將您的 App Service 方案調升或調降。
等候 10 分鐘。
調整回到您開始的位置。
IP 位址限制
您可以設定一份 IP 位址清單,其中包含您要允許或拒絕存取函式應用程式的 IP 位址。 如需詳細資訊,請參閱 Azure App Service 靜態 IP 限制。
專用的 IP 位址
當您的函式應用程式需要靜態、專用 IP 位址時,有數個要探索的策略。
輸出靜態 IP 的虛擬網路 NAT 閘道
您可以使用虛擬網路 NAT 閘道,透過靜態公用 IP 位址將流量導向,控制來自函式的輸出流量 IP 位址。 您可以在進階方案或專用 (App Service) 方案中執行時使用此拓撲。 若要深入了解,請參閱教學課程:使用 Azure 虛擬網路 NAT 閘道控制 Azure Functions 輸出 IP \(部分機器翻譯\)。
App Service 環境
若要完整控制輸入和輸出的 IP 位址,我們建議 App Service 環境 (App Service 方案的隔離層)。 如需詳細資訊,請參閱 App Service 環境 IP 位址和如何控制對 App Service 環境的輸入流量。
若要找出您的函式應用程式是否在 App Service 環境中執行:
- 登入 Azure 入口網站。
- 巡覽至函式應用程式。
- 選取概述索引標籤。
- App Service 方案層會出現在 App Service 方案/定價層之下。 App Service 環境定價層為 [隔離]。
App Service 環境 sku
為 Isolated
。
下一步
IP 變更的常見原因是函式應用程式級別變更。 深入了解函式應用程式調整。