分享方式:


Azure Functions 中的 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 位址:

  1. 登入到 Azure 資源總
  2. 選取 訂閱> {您的訂閱} >提供者>Microsoft.Web>網站
  3. 在 JSON 面板中,尋找以 id 函式應用程式名稱結尾之屬性的網站。
  4. 請參閱 outboundIpAddressespossibleOutboundIpAddresses

的集合 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 可以隨時變更。

如果您需要控制函式應用程式的輸出IP位址,例如當您需要將它新增至允許清單時,請考慮在進階裝載方案中執行時實作 虛擬網路 NAT 閘道 。 您也可以藉由在專用(App Service)方案中執行來達成此動作。

專用方案

當函式應用程式在專用 (App Service) 方案上執行時,在以下情況下,函式應用程式的可用輸出 IP 位址集可能會有所變更:

  • 採取任何可變更輸入IP位址的動作。
  • 更改您的專用(App Service)計劃的定價層。 應用程式可用於所有定價層的所有可能輸出IP位址清單位於屬性中 possibleOutboundIPAddresses 。 請參閱 尋找輸出IP

強制輸出IP位址變更

使用以下步驟刻意強制在專用(App Service)方案中更改輸出 IP 位址:

  1. 在標準與進階 v2 定價層之間相應增加或減少您的App Service方案。

  2. 等候 10 分鐘。

  3. 回到起點。

IP 位址限制

您可以設定您要允許或拒絕對函式應用程式存取的IP位址清單。 如需詳細資訊,請參閱 Azure App 服務 存取限制

專用IP位址

當您的函式應用程式需要靜態專用IP位址時,有數種策略可以探索。

輸出靜態 IP 的虛擬網路 NAT 閘道

您可以使用虛擬網路 NAT 閘道,透過靜態公用 IP 位址引導流量,來控制函式的輸出流量的 IP 位址。 您可以在 進階方案專用主控方案中執行時使用此拓撲。 若要深入瞭解,請參閱 教學課程:使用 Azure 虛擬網路 NAT 閘道控制 Azure Functions 輸出 IP

App Service 環境

若要完全控制輸入和輸出IP位址,我們建議 App Service環境(App Service 方案的 隔離層 )。 如需詳細資訊,請參閱 App Service 環境概觀

若要瞭解您的函式應用程式是否在 App Service 環境中執行:

  1. 登入 Azure 入口網站
  2. 巡覽至函式應用程式。
  3. 選取概述索引標籤。
  4. App Service 方案層會出現在 App Service 方案/定價層底下。 App Service 環境定價層是 隔離的

App Service 的環境 skuIsolated

後續步驟

IP 變更的常見原因之一是功能應用程式的擴展調整。 深入瞭解函式應用程式擴展