全部產品
Search
文件中心

Function Compute:配置NAS檔案系統

更新時間:Aug 21, 2026

在Function Compute的應用情境中,面對多個應用或函數需共用訪問同一組資料的需求,例如,機器學習應用中,訓練好的模型需要被多個推理函數共用,您可以為函數配置NAS檔案系統來儲存這些資料,實現檔案分享權限設定,簡化資料管理流程,同時解決本地磁碟空間限制問題。為函數配置NAS檔案系統後,您的FC函數可以像操作本地檔案系統一樣,輕鬆執行讀取和寫入NAS檔案的操作。

前提條件

  • Function Compute

    已建立函數並為函數配置VPC網路訪問能力。具體操作,請參見建立函數配置網路

    **

    說明

    目前只支援在私人的VPC環境內添加NAS掛載點,因此,在配置網路時需設定允許函數訪問VPC內資源,並配置正確的VPC,才能訪問指定的NAS檔案系統。

    • Apsara File Storage NAS

    已建立NAS檔案系統,並添加掛載點。具體操作,請參見建立檔案系統添加掛載點

使用限制

  • Function Compute在同一地區下的一個函數最多支援配置5個NAS掛載點和5個OSS掛載點。

  • NAS掛載點和OSS掛載點設定的函數運行環境中的本地目錄不能衝突。

配置NAS檔案系統

  1. 登入Function Compute控制台,在左側導覽列,選擇函數管理>函數列表

  2. 在頂部功能表列,選擇地區,然後在函數列表頁面,單擊目標函數。

  3. 在函數詳情頁面,選擇配置頁簽,單擊進階配置右側的編輯,在進階配置面板,找到儲存選項,開啟掛載NAS檔案系統開關,按照以下操作配置完成後單擊部署

    您可以選擇自動設定自訂配置兩種方式來配置NAS檔案系統。

自動設定

系統自動為您建立一個名稱為`Alibaba-Fc-V3-Component-Generated`的通用型NAS檔案系統以及同名的專用網路、交換器和安全性群組。

當您再次選擇**自動設定**時,系統查詢到當前地區下已存在該NAS檔案系統,則會複用該檔案系統和相關VPC配置,不會重複建立。關於費用詳情,請參見[VPC產品計費](https://www.alibabacloud.com/help/zh/vpc/product-overview/product-billing#concept-1357436)和[通用型NAS計費](https://www.alibabacloud.com/help/zh/nas/product-overview/billing-of-general-purpose-nas-file-systems#task-2567548)。

自訂配置

您需要手動選擇NAS檔案系統,設定使用者、使用者組以及NAS掛載點等NAS相關參數才能完成配置NAS檔案系統。

重點配置項介紹如下:

| **配置項** | **說明** | **樣本** |
| --- | --- | --- |
| **NAS 檔案系統** | 選擇已建立的NAS檔案系統。<br>如需建立新的NAS檔案系統,單擊下方的**建立新的 NAS 檔案系統**,跳轉到[檔案儲存體控制台](https://nas.console.alibabacloud.com/)手動建立。<br>**<br>**重要**<br>僅支援NFS協議類型的NAS檔案系統,不支援SMB協議類型。 | 01d394**** |
| **使用者**、**使用者組** | 需填寫自訂的使用者ID和使用者組ID。如您不輸入任何值,系統將使用root使用者,即`UID=0`和`GID=0`。更多資訊,請參見[NAS使用者和使用者組](#nas_4)。 | 1 |
| **遠端目錄** | - 通用型NAS的該目錄必須以/開頭。<br>- 極速型NAS的該目錄必須以/share開頭。<br>若您配置的目錄在遠端NAS中不存在,Function Compute將會為您自動建立該目錄。目錄所有者為上述配置的使用者和使用者組,許可權等級為`777`。<br>更多資訊,請參見[遠端目錄](#遠端目錄和函數本地目錄)。 | / |
| **函數本地目錄** | 建議使用/home、/mnt、/tmp或/data的子目錄。<br>**<br>**說明**<br>不能使用通用的Linux和Unix系統目錄及其子目錄,例如/bin、/opt、/var或/dev等,以免掛載失敗。<br>更多資訊,請參見[函數本地目錄](#遠端目錄和函數本地目錄)。 | /mnt/nas |

**

<div class="xdita-note-override" data-type="note"></div>

>
> - 如果您希望不同函數可以共用NAS檔案資源,您需要在為這些函數配置NAS檔案系統時,使用同一個使用者和使用者組。
> - 上傳至NAS的檔案許可權與本地檔案許可權完全相同。

驗證NAS是否掛載成功

準備訪問NAS的函數代碼

完成NAS檔案系統的配置後,您可以在您的函數代碼中,通過掛載時指定的路徑來訪問NAS檔案系統。

  1. 在函數詳情頁面,單擊代碼頁簽,在代碼編輯器中編寫代碼,然後單擊部署代碼

    本文以Python事件函數代碼為例,在代碼中完成將內容寫入NAS檔案系統和讀取NAS檔案內容。

    #!/usr/bin/env python # -*- coding: utf-8 -*- import random import subprocess import string import os def handler(event, context): # report file system disk space usage and check NAS mount target out, err=subprocess.Popen(['df', '-h'], stdout=subprocess.PIPE).communicate() print('disk: ' + str(out)) lines = [ l.decode() for l in out.splitlines() if str(l).find(':') != -1 ] nas_dirs = [ x.split()[-1] for x in lines ] print('uid : ' + str(os.geteuid())) print('gid : ' + str(os.getgid())) for nas_dir in nas_dirs: sub_dir = randomString(16) file_name = randomString(6)+'.txt' new_dir = nas_dir + '/' + sub_dir + '/' print('test file: ' + new_dir + file_name) # 寫入NAS檔案 content = "NAS here I come" os.mkdir(new_dir) fw = open(new_dir + file_name, "w+") fw.write(content) fw.close() # Showing the folder tree in NAS for home, dirs, files in os.walk(nas_dir): level = home.replace(nas_dir, '').count(os.sep) indent = ' ' * 2 * (level) print('{}{}/'.format(indent, os.path.basename(home))) subindent = ' ' * 2 * (level + 1) for f in files: print('{}{}'.format(subindent, f)) # 讀取NAS檔案 f = open(new_dir + file_name, "r") print(f.readline()) f.close() return 'success' def randomString(n): return ''.join(random.SystemRandom().choice(string.ascii_uppercase + string.digits) for _ in range(n))

驗證結果

  1. 代碼部署成功後,單擊代碼頁簽的測試函數

    執行完成後,您可以在代碼頁簽的下方查看執行結果。在日誌輸出頁簽下可以看到函數已經成功寫入NAS檔案並讀取NAS檔案。

    C9JFL0.txt DCFIC887M7R74WYH/ 5CXI5H.txt H0630SH2QHPL9MHZ/ EUV7ZA.txt H4UNM032L2TDLPPQ/ YXDBPM.txt HYMF79FH11AYW66D/ LU3WNG.txt Z3QNEH0MY0K3VM6G/ 9D3FM2.txt fc-1/ modelscope-60c13a-model-download-func/ NAS here I come FC Invoke End RequestId: 1-66878b18-16cd285c-27f5980efe23
  2. (可選)完成檔案的寫入和讀取之後,您可以登入執行個體查看函數本地目錄下的檔案情況,確認查詢到的NAS檔案與上一步函數執行成功後日誌輸出內容是否一致。

    1. 您可以在函數詳情頁面,單擊執行個體頁簽,單擊目標執行個體操作列的登入執行個體

      如果當前沒有運行中的執行個體,可以在代碼頁簽單擊測試函數重新執行一次函數,建立執行個體。

    2. 成功登入執行個體後,您就可以通過命令查看配置的函數本地目錄下的檔案資訊。

      root@c-668b4cff-xxx:/code# cd /mnt/nas root@c-668b4cff-xxx:/mnt/nas# ls 0Q0V5ZYWMW7SLUYV BVT5FA0OV9ZLIZMU DCFIC887M7R74WYH F8I2CGH79QQGPZKC HO63OSH2QHPL9MHZ H4UNM032L2TDLPPQ HYMF79FH11AYW66D KEDRGMD67X64A6FD Z3QNEH0MY0K3VM6G fc-1 modelscope-60c13a-model-download-func root@c-668b4cff-xxx:/mnt/nas# cd ../ root@c-668b4cff-xxx:/mnt# cd nas/Z3QNEH0MY0K3VM6G root@c-668b4cff-xxx:/mnt/nas/Z3QNEH0MY0K3VM6G# ls 9D3FM2.txt root@c-668b4cff-xxx:/mnt/nas/Z3QNEH0MY0K3VM6G#
  3. (可選)您還可以使用NAS可視化瀏覽器應用,直接通過瀏覽器管理已掛載NAS檔案系統中的檔案。具體操作,請參見使用Function Compute快速搭建可視化NAS瀏覽器應用

    針對華東1(杭州)和華東2(上海)地區,您無需搭建上述Function Compute的可視化NAS瀏覽器應用,直接在NAS控制台,找到目標檔案系統,在操作列,選擇,即可進行可視化管理檔案。

    成功訪問NAS 瀏覽器後,檔案管理頁面的根目錄下將顯示已掛載 NAS 檔案系統中的檔案夾,表示掛載配置正確。

相關概念

NAS使用者和使用者組

UserID(使用者ID)和GroupID(使用者組ID)取值範圍為[0, 65534],如果不填寫,預設值均為0,即分別表示root使用者ID和root使用者組ID。您需要根據需求設定檔案的擁有者和相應的組許可權,確保檔案讀寫權限一致。例如,如果您希望不同函數可以共用NAS檔案資源,您需要在為這些函數配置NAS檔案系統時,使用同一個使用者和使用者組。

遠端目錄和函數本地目錄 {#遠端目錄和函數本地目錄}

每個NAS掛載點的地址由遠端目錄函數本地目錄組成。掛載NAS的過程本質上是建立了一個從Function Compute執行個體的本地目錄到NAS遠端目錄的映射關係。

  • 遠端目錄

    遠端NAS中的目錄是指位於NAS檔案系統中的目錄,由掛載點和絕對目錄兩部分組成。掛載點可以通過NAS控制台來添加。將掛載點和絕對目錄拼接得到遠端目錄。例如,NAS檔案系統的掛載點是xxxx-nas.aliyuncs.com,您希望被訪問的絕對目錄是/workspace/document,對應完整的遠端目錄就是xxxx-nas.aliyuncs.com:/workspace/document。

    您可以登入NAS控制台,在檔案系統列表中,單擊目標檔案系統,然後單擊掛載使用,以擷取掛載點。

  • 函數本地目錄

    函數運行環境中的本地目錄是指本地檔案系統的掛載點。建議使用/home、/mnt、/tmp或/data的子目錄。不能使用通用的Linux和Unix系統目錄及其子目錄掛載NAS,例如/bin、/opt、/var或/dev等。

相關文檔

  • Function Compute支援的儲存類型包括Apsara File Storage NAS、Object Storage Service、臨時硬碟和層,如果您希望瞭解這些儲存類型的適用情境及差異,請參見函數儲存選型

  • 如果您需要儲存大量圖片、視頻和文檔等非結構化資料,建議您掛載OSSObject Storage Service系統來實現。更多資訊,請參見配置OSSObject Storage Service

  • 您還可以使用Serverless Devs為函數掛載NAS系統。具體操作,請參見Serverless Devs常用命令

  • 如果您需要可視化管理為函數配置的NAS檔案管理系統,可以通過Function Compute應用中心建立NAS可視化瀏覽器應用。具體操作,請參見快速入門(FC)