全部產品
Search
文件中心

Function Compute:配置NAS檔案系統

更新時間:Jul 06, 2024

Apsara File Storage NAS是一種分布式的網路檔案儲存體系統,為ECS、HPC、Docker、BatchCompute等提供安全、高效能、高可靠、簡單易用的檔案儲存體服務。本文介紹如何通過Function Compute控制台配置NAS檔案系統。

背景資訊

阿里雲Function Compute支援與Apsara File Storage NAS無縫整合。您可以在Function Compute的服務上配置NAS,包括NAS的地區、掛載點、分組等資訊。配置成功後,該服務下的函數就可以像訪問本地檔案系統一樣訪問指定的NAS檔案系統。

使用NAS作為Function Compute的掛載點的優勢如下。
  • 可以將臨時檔案儲存體到NAS中,臨時檔案大小不受執行個體本地磁碟空間限制。
  • 多個函數可以共用一個NAS,實現檔案分享權限設定。

前提條件

配置NAS

Function Compute的NAS配置為服務等級,為一個服務配置NAS掛載點後,此服務下的所有函數都可以訪問指定NAS檔案系統上的檔案。

  1. 登入Function Compute控制台,在左側導覽列,單擊服務及函數
  2. 在頂部功能表列,選擇地區,然後在服務列表頁面,單擊目標服務操作列的配置
  3. 在編輯服務頁面的儲存配置地區,配置以下參數,然後單擊儲存
    儲存配置
    • 掛載 NAS 檔案系統:是否啟用NAS檔案系統。取值說明如下。
      • 啟用:啟用NAS檔案系統。
      • 禁用:不啟用NAS檔案系統。
    • NAS 配置方式:NAS檔案系統的配置方式。取值說明如下。
      • 自動設定:系統自動為您配置NAS檔案系統。
        說明
        • 選擇自動設定前,需先允許函數訪問VPC內資源,並選擇一個專用網路交換器安全性群組。如未選擇,系統將會為您自動建立以上資源並綁定到當前服務。關於費用詳情,請參見VPC產品計費
        • 選擇自動設定,系統將為您建立一個新的通用型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掛載時,首先需要配置UserID(使用者ID)和GroupID(使用者組ID),這兩個值等同於檔案系統中的使用者和組的概念。請根據需求設定檔案的擁有者和相應的組許可權,確保檔案讀寫權限一致。

UserID和GroupID取值範圍為[0, 65534]。UserID和GroupID值配置可選,如果不填寫UserID,系統會使用root使用者ID,即0UserID值為0;如果不填寫GroupID,系統會使用root使用者組ID,即GroupID值為0

Function Compute使用非root許可權執行使用者代碼時,如果需要掛載遠端NAS的子目錄,需確保函數執行個體中執行使用者具有子目錄的讀寫權限。建議您選擇以下兩種方法中任意一種進行操作。
  • 使用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系統目錄,例如binoptvardev等掛載NAS,Function Compute允許您使用非系統目錄mnthomedata掛載NAS。

更多資訊

您還可以使用Serverless Devs為服務掛載NAS系統。具體操作,請參見使用s nas相關命令掛載硬碟