將 Azure 儲存體掛接為 App Service 中的本機共用

Azure 儲存體是 Microsoft 針對新式資料儲存體案例的雲端儲存體解決方案。 Azure 儲存體針對雲端中的各種資料物件,提供高可用性、可大規模調整、持久且安全的儲存體。 本指南說明如何使用 Windows 程式碼 (非容器),將 Azure 儲存體檔案裝載為 App Service 的網路共用。 僅支援 Azure 檔案儲存體共用進階檔案共用。 Azure 儲存體為非預設的 App Service 儲存體,且會個別計費。 您也可以在 ARM 範本中設定 Azure 儲存體

自訂掛接儲存體的優點包含:

  • 設定 App Service 應用程式的永續性儲存體,並個別管理儲存體。
  • 可讓 App Service 應用程式使用影片和影像等靜態內容。
  • 將應用程式記錄檔寫入、或將較舊的應用程式記錄檔封存為 Azure 檔案共用。
  • 跨多個應用程式共用內容,或與其他 Azure 服務共用內容。

Windows 程式碼支援下列功能:

  • 使用金鑰保存庫保護的存取具有私人端點服務端點的儲存體帳戶 (使用 VNET 整合時)。
  • Azure 檔案儲存體 (讀取/寫入)。
  • 各應用程式最多有五個掛接點。
  • 使用 "/mounts/<path-name>" 掛接 Azure 儲存體檔案共用。

以下是將 Azure 儲存體裝載至應用程式的三種選項:

掛接選項 使用方式
基本 使用 Azure 入口網站掛儲存體體時,請選擇此選項。 只要儲存體帳戶未使用服務端點私人端點,或 Azure Key Vault,您就可以使用基本選項。 在此情況下,入口網站會為您取得存取金鑰並加以儲存。
便捷鍵 如果您打算使用 Azure CLI 裝載儲存體,則您需要取得存取密鑰。 選擇此選項時,儲存體帳戶不會使用服務端點私人端點,或 Azure Key Vault
Key Vault 當您打算使用需要存取金鑰的 Azure CLI 裝載儲存體時,也請使用此選項。 使用 Azure Key Vault 安全地儲存和擷取存取金鑰時,請選擇此選項。 Azure Key Vault 具有集中且可安全地儲存應用程式祕密的優點,能夠監視、管理及整合其他 Azure 服務,例如 Azure App Service。

必要條件

限制

  • 儲存體防火牆僅支援透過私人端點服務端點 (使用 VNET 整合時)。
  • 針對部署至 App Service 的 Windows 程式碼應用程式,設定 Azure 儲存體裝載時不支援 Azure Blob。
  • 不支援使用 FTP/FTPS 存取掛接儲存體 (使用 Azure 儲存體總管)。
  • 不支援將 /mountsmounts/foo/bar//mounts/foo.bar/ 對應至自訂裝載儲存體 (僅可使用 /mounts/pathname 將自訂儲存體裝載至 Web 應用程式。)
  • 儲存體掛接不會包含在備份中。 請務必依循備份 Azure 儲存體帳戶的最佳做法。
  • 在應用程式的 VNET 整合後,裝載的磁碟會使用 RFC1918 IP 位址,而不是來自 VNET 的 IP 位址。

準備進行掛接

因為入口網站會為您取得並儲存存取金鑰,因此不需要額外的步驟。

將儲存體掛接至 Windows 程式碼

  1. Azure 入口網站中,瀏覽至應用程式。

  2. 從左側導覽中,按一下 [設定]>[路徑對應]>[新增 Azure 儲存體掛接]

  3. 根據下表設定儲存體掛接。 完成後,請按一下 [確定]

    設定 描述
    名稱 掛接設定的名稱。 不允許空格。
    設定選項 若儲存體帳戶未使用私人端點Azure Key Vault,請選取 [基本]。 否則,請選取 [進階]
    儲存體帳戶 Azure 儲存體帳戶。 必須包含 Azure 檔案儲存體共用。
    共用名稱 要掛接的檔案共用。
    儲存體存取 針對 Azure Key Vault 選取 [金鑰保存庫參考]。 否則,請選取 [手動輸入]
    存取金鑰 (僅限進階) 儲存體帳戶的存取金鑰
    裝載路徑 要掛接的應用程式服務內部目錄。 只支援 /mounts/pathname
    應用程式設定 選取使用 Azure Key Vault 祕密設定的應用程式設定。
    部署位置設定 核取時,儲存體掛接設定也會套用至部署位置。

注意

新增、編輯或刪除儲存體掛接會導致應用程式重新開啟。

最佳作法

  • Azure 儲存體掛接可以設定為虛擬目錄,以提供靜態內容。 若要設定虛擬目錄,請在左側瀏覽中,按一下 [設定]> [路徑對應]> [新增虛擬應用程式或目錄]。 將 [實體路徑] 設定為 Azure 儲存體掛接上定義的 [掛接路徑]

  • 若要避免延遲問題,請將應用程式和 Azure 儲存體放在相同的區域中。 如果當應用程式和 Azure 儲存體帳戶位於相同的區域時,在Azure 儲存體防火牆組態中授與來自 App Service IP 位址的存取權,則不會接受這些 IP 限制。

  • 在 Azure 儲存體帳戶中,避免用於在應用程式中掛接儲存體的存取金鑰重新產生。 儲存體帳戶包含兩個不同的金鑰。 Azure App Services 會儲存 Azure 儲存體帳戶金鑰。 使用逐步方式,確保應用程式在重新產生金鑰期間仍可使用儲存體掛接。 例如,假設您在應用程式中使用 key1 設定儲存體掛接:

    1. 重新產生 key2
    2. 在儲存體掛接組態中,更新存取金鑰以使用重新產生的 key2
    3. 重新產生 key1
  • 若刪除 Azure 儲存體帳戶、容器或共用,請移除應用程式中對應的儲存體掛接組態,以避免可能發生的錯誤案例。

  • 掛接的 Azure 儲存體帳戶可為標準或進階效能層級。 根據應用程式容量和輸送量需求,為儲存體帳戶選擇適當的效能層級。 請參閱檔案儲存體的延展性和效能目標

  • 若應用程式調整為多個執行個體,則所有執行個體皆會連線至同一個掛接的 Azure 儲存體帳戶。 若要避免效能瓶頸和輸送量問題,請為儲存體帳戶選擇適當的效能層級。

  • 本機資料庫 (如 SQLite) 或其他依賴檔案控制代碼及鎖定的應用程式和元件,則不建議使用儲存體掛接。

  • 如果您將儲存體帳戶裝載至應用程式時起始儲存體容錯移轉,則掛接在重新啟動應用程式或移除並讀取儲存體掛接之前,將不會連線。

  • 使用 VNET 整合時,請確定已將應用程式設定 WEBSITE_CONTENTOVERVNET 設為 1,且已開啟下列連接埠:

    • Azure 檔案儲存體:80 和 445
  • 掛接的 Azure 儲存體帳戶可為標準或進階效能層級。 根據應用程式容量和輸送量需求,為儲存體帳戶選擇適當的效能層級。 請參閱檔案儲存體的延展性和效能目標

下一步

Azure 儲存體是 Microsoft 針對新式資料儲存體案例的雲端儲存體解決方案。 Azure 儲存體針對雲端中的各種資料物件,提供高可用性、可大規模調整、持久且安全的儲存體。 本指南說明如何在 App Service 的 Windows 容器中將 Azure 儲存體檔案掛接為網路共用。 僅支援 Azure 檔案儲存體共用進階檔案共用。 Azure 儲存體為非預設的 App Service 儲存體,且會個別計費。 您也可以在 ARM 範本中設定 Azure 儲存體

自訂掛接儲存體的優點包含:

  • 設定 App Service 應用程式的永續性儲存體,並個別管理儲存體。
  • 可讓 App Service 應用程式使用影片和影像等靜態內容。
  • 將應用程式記錄檔寫入 Azure 檔案共用,或將較舊的應用程式記錄檔封存至 Azure 檔案共用。
  • 跨多個應用程式共用內容,或與其他 Azure 服務共用內容。
  • 在 Windows 容器中掛接 Azure 儲存體,包括隔離式 (App Service 環境 v3)。

Windows 容器支援下列功能:

  • 使用金鑰保存庫保護的存取具有私人端點服務端點的儲存體帳戶 (使用 VNET 整合時)。
  • Azure 檔案儲存體 (讀取/寫入)。
  • 各應用程式最多有五個掛接點。
  • 磁碟機代號指派 (C:Z:)。

以下是將 Azure 儲存體裝載至應用程式的三種選項:

掛接選項 使用方式
基本 使用 Azure 入口網站掛儲存體體時,請選擇此選項。 只要儲存體帳戶未使用服務端點私人端點,或 Azure Key Vault,您就可以使用基本選項。 在此情況下,入口網站會為您取得存取金鑰並加以儲存。
便捷鍵 如果您打算使用 Azure CLI 裝載儲存體,則您需要取得存取密鑰。 選擇此選項時,儲存體帳戶不會使用服務端點私人端點,或 Azure Key Vault
Key Vault 當您打算使用需要存取金鑰的 Azure CLI 裝載儲存體時,也請使用此選項。 使用 Azure Key Vault 安全地儲存和擷取存取金鑰時,請選擇此選項。 Azure Key Vault 具有集中且可安全地儲存應用程式祕密的優點,能夠監視、管理及整合其他 Azure 服務,例如 Azure App Service。

必要條件

限制

  • 不支援 Azure Blob。
  • 儲存體防火牆僅支援透過私人端點服務端點 (使用 VNET 整合時)。
  • 不支援使用 FTP/FTPS 存取掛接儲存體 (使用 Azure 儲存體總管)。
  • 不支援將 [C-Z]:\[C-Z]:\home//home 對應至自訂掛接的儲存體。
  • 備份應用程式時不會備份儲存體掛接。 請務必依循備份 Azure 儲存體帳戶的最佳做法。
  • 在應用程式的 VNET 整合後,裝載的磁碟會使用 RFC1918 IP 位址,而不是來自 VNET 的 IP 位址。

準備進行掛接

因為入口網站會為您取得並儲存存取金鑰,因此不需要額外的步驟。

將儲存體掛接至 Windows 容器

  1. Azure 入口網站中,瀏覽至應用程式。

  2. 從左側導覽中,按一下 [設定]>[路徑對應]>[新增 Azure 儲存體掛接]

  3. 根據下表設定儲存體掛接。 完成後,請按一下 [確定]

    設定 描述
    名稱 掛接設定的名稱。 不允許空格。
    設定選項 選取 [基本]
    儲存體帳戶 Azure 儲存體帳戶。 必須包含 Azure 檔案儲存體共用。
    共用名稱 要掛接的檔案共用。
    裝載路徑 要掛接的 Windows 容器內部目錄。 請勿使用根目錄 ([C-Z]:\/) 或 home 目錄 ([C-Z]:\home/home),因為不支援。
    部署位置設定 核取時,儲存體掛接設定也會套用至部署位置。

注意

新增、編輯或刪除儲存體掛接會導致應用程式重新開啟。

最佳作法

  • 若要避免延遲問題,請將應用程式和 Azure 儲存體放在相同的區域中。 如果當應用程式和 Azure 儲存體帳戶位於相同的區域時,在Azure 儲存體防火牆組態中授與來自 App Service IP 位址的存取權,則不會接受這些 IP 限制。

  • 在 Azure 儲存體帳戶中,避免用於在應用程式中掛接儲存體的存取金鑰重新產生。 儲存體帳戶包含兩個不同的金鑰。 Azure App Services 會儲存 Azure 儲存體帳戶金鑰。 使用逐步方式,確保應用程式在重新產生金鑰期間仍可使用儲存體掛接。 例如,假設您在應用程式中使用 key1 設定儲存體掛接:

    1. 重新產生 key2
    2. 在儲存體掛接組態中,更新存取金鑰以使用重新產生的 key2
    3. 重新產生 key1
  • 若刪除 Azure 儲存體帳戶、容器或共用,請移除應用程式中對應的儲存體掛接組態,以避免可能發生的錯誤案例。

  • 掛接的 Azure 儲存體帳戶可為標準或進階效能層級。 根據應用程式容量和輸送量需求,為儲存體帳戶選擇適當的效能層級。 請參閱檔案儲存體的延展性和效能目標

  • 若應用程式調整為多個執行個體,則所有執行個體皆會連線至同一個掛接的 Azure 儲存體帳戶。 若要避免效能瓶頸和輸送量問題,請為儲存體帳戶選擇適當的效能層級。

  • 本機資料庫 (如 SQLite) 或其他依賴檔案控制代碼及鎖定的應用程式和元件,則不建議使用儲存體掛接。

  • 使用 Azure 檔案儲存體與 VNET 整合時,請確定連接埠 80 和 445 已開啟。

  • 如果您將儲存體帳戶裝載至應用程式時起始儲存體容錯移轉,則掛接在重新啟動應用程式或移除並讀取儲存體掛接之前,將不會連線。

下一步

注意

NFS 支援現已可供 Linux 上的 App Service 使用。

本指南說明如何將 Azure 儲存體掛接為內建 Linux 容器或 App Service 自訂 Linux 容器中的網路共用。 Azure 儲存體是 Microsoft 針對新式資料儲存體案例的雲端儲存體解決方案。 Azure 儲存體針對雲端中的各種資料物件,提供高可用性、可大規模調整、持久且安全的儲存體。 Azure 儲存體為非預設的 App Service 儲存體,且會個別計費。 您也可以在 ARM 範本中設定 Azure 儲存體

福利

自訂掛接儲存體的優點包含:

  • 設定 App Service 應用程式的永續性儲存體,並個別管理儲存體。
  • 可讓 App Service 應用程式使用影片和影像等靜態內容。
  • 將應用程式記錄檔寫入 Azure 檔案共用,或將較舊的應用程式記錄檔封存至 Azure 檔案共用。
  • 跨多個應用程式共用內容,或與其他 Azure 服務共用內容。
  • 支援 Azure 檔案 NFS 和 Azure 檔案儲存體 SMB
  • 支援 Azure Blob (唯讀)。
  • 每個應用程式最多支援五個掛接點。

限制

自訂裝載儲存體的限制包括:

  • 儲存體防火牆僅支援透過服務端點私人端點 (使用 VNET 整合時)。
  • 不支援使用 FTP/FTPS 存取自訂的掛接儲存體 (使用 Azure 儲存體總管)。
  • 儲存體帳戶共用存取金鑰是唯一支援的驗證方法; 不支援 Entra ID 和 RBAC 角色
  • Azure CLI、Azure PowerShell 和 Azure SDK 支援為預覽版。
  • 不支援將 //home 對應至自訂掛接的儲存體。
  • 請勿將儲存體掛接對應至 /tmp 或其子目錄,因為此動作可能會在應用程式啟動期間導致逾時。
  • Docker Compose 案例不支援 Azure 儲存體。
  • 儲存體掛接不會包含在備份中。 請務必依循備份 Azure 儲存體帳戶的最佳做法。
  • NFS 支援僅適用於 Linux 上的 App Service。 Windows 程式碼和 Windows 容器不支援 NFS。 Web 應用程式和儲存體帳戶必須在相同的 VNET 上設定 NFS。 用於檔案共用的儲存體帳戶應具有「進階」效能層級和「Filestorage」作為帳戶種類。 使用 NFS 通訊協定時,不適用 Azure Key Vault。
  • 在應用程式的 VNET 整合後,裝載的磁碟會使用 RFC1918 IP 位址,而不是來自 VNET 的 IP 位址。

掛接選項

您必須先將儲存體裝載至應用程式。 以下是 Azure 儲存體的三個裝載選項:

掛接選項 使用方式
基本 使用 Azure 入口網站掛儲存體體時,請選擇此選項。 只要儲存體帳戶未使用服務端點私人端點,或 Azure Key Vault,您就可以使用基本選項。 在此情況下,入口網站會為您取得存取金鑰並加以儲存。
便捷鍵 如果您打算使用 Azure CLI 裝載儲存體,則您需要取得存取密鑰。 選擇此選項時,儲存體帳戶不會使用服務端點私人端點,或 Azure Key Vault
Key Vault 當您打算使用需要存取金鑰的 Azure CLI 裝載儲存體時,也請使用此選項。 使用 Azure Key Vault 安全地儲存和擷取存取金鑰時,請選擇此選項。 Azure Key Vault 具有集中且可安全地儲存應用程式祕密的優點,能夠監視、管理及整合其他 Azure 服務,例如 Azure App Service。

必要條件

準備進行掛接

因為入口網站會為您取得並儲存存取金鑰,因此不需要額外的步驟。

將儲存體掛接至 Linux 容器

裝載儲存體的方式取決於您的儲存體存取選項,以及您使用的是入口網站或是 Azure CLI。

  1. Azure 入口網站中,瀏覽至應用程式。

  2. 從左側導覽中,按一下 [設定]>[路徑對應]>[新增 Azure 儲存體掛接]

  3. 根據下表設定儲存體掛接。 完成後,請按一下 [確定]

    設定 描述
    名稱 掛接設定的名稱。 不允許空格。
    設定選項 選取 [基本]。 如果儲存體帳戶未使用服務端點私人端點,或 Azure Key Vault 否則,請選取 [進階]
    儲存體帳戶 Azure 儲存體帳戶。
    儲存體類型 根據要掛接的儲存體選取類型。 Azure Blob 僅支援唯讀存取。
    儲存體容器共用名稱 要掛接的檔案共用或 Blob 容器。
    裝載路徑 要掛接至 Azure 儲存體的 Linux 容器內部目錄。 不要使用此 //home
    部署位置設定 核取時,儲存體掛接設定也會套用至部署位置。

注意

新增、編輯或刪除儲存體掛接會導致應用程式重新開啟。

驗證裝載的儲存體

若要驗證應用程式是否已成功掛接 Azure 儲存體:

  1. 在容器中開啟 SSH 工作階段

  2. 在 SSH 終端機中執行下列命令:

    df –h 
    
  3. 檢查儲存體共用是否已掛接。 若沒有,則已發生儲存體共用掛接問題。

  4. 使用下列命令,以檢查儲存體掛接的延遲或一般連線能力:

    tcpping Storageaccount.file.core.windows.net 
    

最佳作法

效能

  • 若要避免延遲問題,請將應用程式和 Azure 儲存體放在相同的區域中。 如果當應用程式和 Azure 儲存體帳戶位於相同的區域時,在Azure 儲存體防火牆組態中授與來自 App Service IP 位址的存取權,則不會接受這些 IP 限制。

  • 掛接的 Azure 儲存體帳戶可為標準或進階效能層級。 根據應用程式容量和輸送量需求,為儲存體帳戶選擇適當的效能層級。 請參閱儲存體類型所對應的可擴縮性和效能目標:檔案Blobs

  • 若應用程式調整為多個執行個體,則所有執行個體皆會連線至同一個掛接的 Azure 儲存體帳戶。 若要避免效能瓶頸和輸送量問題,請為儲存體帳戶選擇適當的效能層級。

安全性

  • 在 Azure 儲存體帳戶中,避免用於在應用程式中掛接儲存體的存取金鑰重新產生。 儲存體帳戶包含兩個不同的金鑰。 Azure App Services 會儲存 Azure 儲存體帳戶金鑰。 使用逐步方式,確保應用程式在重新產生金鑰期間仍可使用儲存體掛接。 例如,假設您在應用程式中使用 key1 設定儲存體掛接:
    1. 重新產生 key2
    2. 在儲存體掛接組態中,更新存取金鑰以使用重新產生的 key2
    3. 重新產生 key1

疑難排解

  • 自訂容器中的掛接目錄應為空白。 例如若指定 /home 下的目錄,掛接 Azure 儲存體時便會刪除此路徑所儲存的任何內容。 若移轉的是現有應用程式的檔案,請先備份應用程式及其內容,再開始移轉。
  • 若刪除 Azure 儲存體帳戶、容器或共用,請移除應用程式中對應的儲存體掛接組態,以避免可能發生的錯誤案例。
  • 本機資料庫 (如 SQLite) 或其他依賴檔案控制代碼及鎖定的應用程式和元件,則不建議使用儲存體掛接。
  • 使用 VNET 整合時,請確定下列連接埠已開啟:Azure 檔案儲存體:80 和 445。 Azure Blob:80 和 443。
  • 如果您將儲存體帳戶裝載至應用程式時起始儲存體容錯移轉,則掛接在重新啟動應用程式或移除並讀取儲存體掛接之前,將不會連線。

下一步