分享方式:


如何搭配 Azure Functions 使用安全的儲存體帳戶

本文會說明如何將函數應用程式連線到安全的儲存體帳戶。 如需有關如何搭配輸入和輸出存取限制建立函數應用程式的深入教學課程,請參閱與虛擬網路整合教學課程。 若要深入了解 Azure Functions 和網路功能,請參閱 Azure Functions 網路功能選項

將儲存體帳戶限定於虛擬網路

當您建立函數應用程式時,您可以建立新的儲存體帳戶或連結至現有的儲存體帳戶。 目前,只有 Azure 入口網站、ARM 範本部署Bicep 部署支援使用現有安全的儲存體帳戶建立函數應用程式。

注意

專用 (App Service) 方案彈性進階方案的所有層級都支援安全的儲存體帳戶。 彈性取用方案也對其提供支援。 使用量方案不支援虛擬網路。

如需儲存體帳戶上所有限制的清單,請參閱 儲存器帳戶需求

重要

Flex 使用量方案目前為預覽狀態。

在函數應用程式建立期間保護儲存體

您可以建立函數應用程式,以及虛擬網路後方所保護的新儲存體帳戶。 下列各節會示範如何使用 Azure 入口網站或部署範本來建立這些資源。

完成在進階方案中建立函數應用程式的步驟。 虛擬網路教學課程的本節說明如何建立函數應用程式,以透過私人端點連接到儲存體。

注意

在 Azure 入口網站中建立函數應用程式時,您也可以在 [儲存體] 索引標籤中選擇現有的安全儲存體帳戶。不過,您必須在函數應用程式設定適當的網路功能,才能透過用來保護儲存體帳戶的虛擬網路進行連線。 如果您沒有網路功能的設定權限,或尚未完全準備好網路,請在 [網路] 索引標籤中選取 [在建立後設定網路功能]。您可以在入口網站中的 [設定] > [網路] 底下,為新的函數應用程式設定網路功能。

針對現有的函數應用程式的安全儲存體

具有現有的函數應用程式時,您可以直接在該應用程式所使用的儲存體帳戶上設定網路功能。 但是,此程序會導致函數應用程式在設定網路和在函數應用程式重新啟動時遭到關閉。

若要將停機時間縮到最短,您可以改為交換現有儲存體帳戶,以取得新的安全儲存體帳戶。

1.啟用虛擬網路整合

作為必要條件,您必須啟用函數應用程式的虛擬網路整合:

  1. 使用未啟用服務端點或私人端點的儲存體帳戶來選擇函數應用程式。

  2. 針對您的函數應用程式啟用虛擬網路整合

2.建立安全的儲存體帳戶

為您的函數式應用程式建立安全的儲存體帳戶:

  1. 建立次要儲存體帳戶。 此儲存體帳戶是可供函式應用程式使用的安全儲存體帳戶,而不是其原本的不安全儲存體帳戶。 您也可以使用 Azure Functions 尚未使用的現有儲存體帳戶。

  2. 儲存此儲存體帳戶的連接字串,以供稍後使用。

  3. 在新的儲存體帳戶中建立檔案共用。 為了方便起見,您可以使用原始儲存體帳戶的相同檔案共用名稱。 除此之外,如果使用新的檔案共用名稱,則必須更新應用程式設定。

  4. 使用下列其中一種方式保護新的儲存體帳戶:

    • 建立私人端點。 當您設定私人端點連線時,請為 fileblob 子資源建立私人端點。 針對 Durable Functions,您也必須讓 queuetable 子資源可透過私人端點存取。 如果您使用自訂或內部部署網域名稱系統 (DNS) 伺服器,請務必設定 DNS 伺服器以解析為新的私人端點。

    • 限制特定子網路的流量。 請確定您的函數應用程式已與允許的子網路進行網路整合,且子網路具有 Microsoft.Storage 的服務端點。

  5. 將檔案和 Blob 內容從函數應用程式使用的目前儲存體帳戶複製到新的安全的儲存體帳戶和檔案共用。 AzCopyAzure 儲存體總管 是常見的方法。 如果您使用 Azure 儲存體總管,您可能需要允許用戶端 IP 位址存取儲存體帳戶的防火牆。

現在您已準備好設定函數應用程式,以與新的安全儲存體帳戶進行通訊。

3.啟用應用程式和設定路由傳送。

注意

只有彈性進階專用 (App Service) 主機方案才需要這些設定步驟。 Flex Consumption 方案不需要網站設定,即可設定網路功能。

您現在已可路由函數應用程式的流量,以通過虛擬網路:

  1. 啟用 應用程式路由傳送 將應用程式的流量路由傳送至虛擬網路:

    1. 在您的函式應用程式中,展開 [設定],然後選取 [網路]。 在 [網路] 頁面的 [輸出流量設定] 下,選取與您的虛擬網路整合相關聯的子網路。

    2. 在新頁面的 [應用程式路由] 底下,選取 [輸出網際網路流量]

  2. 啟用 [內容共用路由],讓您的函數應用程式透過其虛擬網路與新的儲存體帳戶通訊。 在與上一個步驟相同的頁面中,於 [組態路由] 底下,選取 [內容儲存體]

注意

若儲存體帳戶由相同方案中的多個函數應用程式共用,當您路由至其中的內容共用時,必須特別小心。 如需詳細資訊,請參閱儲存體考量一文中的透過虛擬網路達到一致路由

4.更新應用程式設定

最後,您必須更新應用程式設定,以指向新的安全儲存體帳戶:

  1. 在您的函數應用程式中,展開 [設定],然後選取 [環境變數]

  2. 在 [應用程式設定] 索引標籤中,透過選取每個設定、加以編輯,然後選取 [套用] 來更新下列設定:

    設定名稱 註解
    AzureWebJobsStorage 儲存體連接字串 使用您稍早儲存的新安全儲存體帳戶連接字串。
    WEBSITE_CONTENTAZUREFILECONNECTIONSTRING 儲存體連接字串 使用您稍早儲存的新安全儲存體帳戶連接字串。
    WEBSITE_CONTENTSHARE 檔案共用 使用專案部署檔案所在的安全儲存體帳戶中建立的檔案共用名稱。
  3. 選取 [套用],然後選取 [確認] 以在函數應用程式中儲存新的應用程式設定。

    函數應用程式會重新啟動。

函數應用程式完成重新啟動之後,即會連線到受保護的儲存體帳戶。

下一步