Apsara File Storage NAS是一種分布式的網路檔案儲存體系統,為ECS、HPC、Docker、BatchCompute等提供安全、高效能、高可靠、簡單易用的檔案儲存體服務。本文介紹如何通過Function Compute控制台配置NAS檔案系統。
背景資訊
阿里雲Function Compute支援與Apsara File Storage NAS無縫整合。您可以在Function Compute的服務上配置NAS,包括NAS的地區、掛載點、分組等資訊。配置成功後,該服務下的函數就可以像訪問本地檔案系統一樣訪問指定的NAS檔案系統。
- 可以將臨時檔案儲存體到NAS中,臨時檔案大小不受執行個體本地磁碟空間限制。
- 多個函數可以共用一個NAS,實現檔案分享權限設定。
前提條件
配置NAS
Function Compute的NAS配置為服務等級,為一個服務配置NAS掛載點後,此服務下的所有函數都可以訪問指定NAS檔案系統上的檔案。
- 登入Function Compute控制台,在左側導覽列,單擊服務及函數。
- 在頂部功能表列,選擇地區,然後在服務列表頁面,單擊目標服務操作列的配置。
- 在編輯服務頁面的儲存配置地區,配置以下參數,然後單擊儲存。
- 掛載 NAS 檔案系統:是否啟用NAS檔案系統。取值說明如下。
- 啟用:啟用NAS檔案系統。
- 禁用:不啟用NAS檔案系統。
- NAS 配置方式:NAS檔案系統的配置方式。取值說明如下。
- 自動設定:系統自動為您配置NAS檔案系統。
- 自訂配置:您需要手動設定如下參數才能配置NAS檔案系統。
- NAS 檔案系統:選擇已建立的NAS檔案系統。如需建立新的NAS檔案系統,單擊下方的建立新的 NAS 檔案系統,跳轉到檔案儲存體控制台手動建立。僅支援NFS協議類型的NAS檔案系統,不支援SMB協議類型。
- (可選)使用者:在文字框中填寫自訂的使用者ID。如您不輸入任何值,系統將使用root使用者ID,即
UID=0
。更多資訊,請參見NAS使用者和使用者組。 - (可選)使用者組:在文字框中填寫自訂的使用者組ID。如您不輸入任何值,系統將使用root使用者組ID,即
GID=0
。更多資訊,請參見NAS使用者和使用者組。 - NAS 掛載點:選擇NAS掛載相關配置和設定相關目錄。關於目錄設定的更多資訊,請參見地址配置。
- 掛載點:選擇與當前服務配置的專用網路和交換器匹配的NAS掛載點。
- 資料轉送方式:選擇普通傳輸方式或加密傳輸方式。僅通用型NAS支援加密傳輸,加密傳輸會對資料轉送路徑進行加密,但是存在一定的資源消耗。更多資訊,請參見NFS協議檔案系統傳輸加密。
- 遠端 NAS 中的目錄:通用型NAS的該目錄必須以/開頭,極速型NAS的該目錄必須以/share開頭。若您配置的目錄在遠端NAS中不存在,Function Compute將會為您自動建立該目錄。目錄所有者為上述配置的使用者和使用者組,許可權等級為
777
。 - 函數運行環境中的本地目錄:必須為/home、/mnt或/data的子目錄。
說明- 配置NAS 掛載點之前,需先允許函數訪問VPC內資源,並選擇同一地區下的一個專用網路和交換器。具體操作,請參見配置網路。
- 一個服務最多可以掛載5個NAS掛載點。
- 掛載 NAS 檔案系統:是否啟用NAS檔案系統。取值說明如下。
NAS使用者和使用者組
在配置函數的NAS掛載時,首先需要配置UserID(使用者ID)和GroupID(使用者組ID),這兩個值等同於檔案系統中的使用者和組的概念。請根據需求設定檔案的擁有者和相應的組許可權,確保檔案讀寫權限一致。
UserID和GroupID取值範圍為[0, 65534]。UserID和GroupID值配置可選,如果不填寫UserID,系統會使用root使用者ID,即0
UserID值為0
;如果不填寫GroupID,系統會使用root使用者組ID,即GroupID值為0
。
- 使用NAS執行個體掛載遠端NAS的根目錄。具體操作,請參見配置NAS。
掛載成功後使用以下樣本建立子目錄,例如fc-1。然後將NAS掛載點中的遠端 NAS 中的目錄由根目錄修改為建立的子目錄(由/修改為/fc-1),實現遠端掛載子目錄。
#!/usr/bin/env python # -*- coding: utf-8 -*- import os def handler(event, context): print('uid : ' + str(os.geteuid())) print('gid : ' + str(os.getgid())) # 請手動更改為 NAS 掛載的本地目錄 local_nas_dir = "/home/app" # 請手動更改為目標子目錄名 target_sub_dir = "fc-1" # 在 FC 中利用當前執行個體執行使用者權限建立目標目錄 new_dir = local_nas_dir + '/' + target_sub_dir + '/' print('new_dir : ' + str(new_dir)) os.mkdir(new_dir) return 'success'
- 使用Elastic Compute Service掛載NAS。具體操作,請參見使用ECS掛載NAS檔案系統。
掛載成功後建立子目錄,然後執行
chmod 777
為子目錄授權。
- 系統預設的使用者和使用者組無檔案的讀寫權限,因此建議您將UserId和GroupId設定為具體的值,即1~65534的任一數字。此時,該服務下不同函數可以共用這些檔案資源。
- 上傳至NAS的檔案許可權與本地檔案許可權完全相同。
地址配置
每個NAS 掛載點地址由遠端 NAS 中的目錄和函數運行環境中的本地目錄組成。遠端目錄與本地目錄結合,實現從NAS檔案系統中的某個目錄到本地檔案系統中的某個目錄的映射。
- 遠端 NAS 中的目錄
遠端NAS中的目錄是指服務需要訪問的NAS檔案系統的目錄,由掛載點和絕對目錄兩部分組成。掛載點可以通過NAS控制台來添加。將掛載點和絕對目錄拼接得到遠端目錄。例如,如果NAS檔案系統的掛載點是xxxx-nas.aliyuncs.com,您希望被訪問的絕對目錄是/workspace/document,對應完整的遠端目錄就是xxxx-nas.aliyuncs.com:/workspace/document。
您可以登入NAS控制台,在檔案系統列表中,單擊目標檔案系統,然後單擊掛載使用,在掛載點列表中擷取掛載點。
- 函數運行環境中的本地目錄
函數運行環境中的本地目錄是指本地檔案系統的掛載點。不能使用通用的Linux和Unix系統目錄,例如bin、opt、var或dev等掛載NAS,Function Compute允許您使用非系統目錄mnt、home或data掛載NAS。
更多資訊
您還可以使用Serverless Devs為服務掛載NAS系統。具體操作,請參見使用s nas相關命令掛載硬碟。