本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將自訂檔案系統連接至網域或使用者設定檔
當您建立網域時,Amazon SageMaker 會自動將其與為您 SageMaker 建立的 Amazon Elastic File System (Amazon EFS) 磁碟區建立關聯。您也可以選擇將網域與您在 中建立的自訂 Amazon EFS 檔案系統建立關聯 AWS 帳戶。當任何使用者使用 Amazon SageMaker Studio 時,屬於網域的使用者都可以使用此檔案系統。使用者可以將檔案系統連接到他們為支援的應用程式: JupyterLab 和程式碼編輯器建立的任何空間。然後,在執行空間並啟動應用程式後,他們可以存取檔案系統包含的任何資料、程式碼或其他成品。
如果您不想允許網域的所有使用者存取檔案系統,您可以改為將其連接至特定的使用者設定檔。如果您這樣做,則檔案系統只能在相關聯使用者建立的空格中使用。
您可以使用 Amazon SageMaker API、 AWS SDKs或 連接自訂檔案系統 AWS CLI。您無法使用 SageMaker 主控台連接自訂檔案系統。
必要條件
您必須先符合下列需求,才能將自訂 Amazon EFS 檔案系統連接至網域:
-
您的 中有 Amazon EFS 檔案系統 AWS 帳戶。如需建立 Amazon EFS 檔案系統的步驟,請參閱 Amazon Elastic File System 使用者指南 中的建立 Amazon Elastic File System。
-
在 Studio 存取您的檔案系統之前,它必須在與網域相關聯的每個子網路中具有掛載目標。如需將掛載目標指派給子網路的詳細資訊,請參閱 Amazon Elastic File System 使用者指南 中的建立和管理掛載目標和安全群組。
-
對於每個掛載目標,您必須在 SageMaker 建立網域 AWS 帳戶 時新增 Amazon 在 中建立的安全群組。安全群組名稱的格式為
security-group-for-inbound-nfs-
。domain-id
-
您的IAM許可必須允許您使用
elasticfilesystem:DescribeMountTargets
動作。如需此動作的詳細資訊,請參閱服務授權參考 中的 Amazon Elastic File System 的動作、資源和條件金鑰。
使用 連接自訂檔案系統 AWS CLI
若要使用 將自訂檔案系統連接至網域或使用者設定檔 AWS CLI,當您使用下列任何命令時,會傳遞CustomFileSystemConfigs
定義:
範例 create-domain 命令搭配自訂檔案系統
下列範例會將檔案系統連接至新網域。
aws sagemaker create-domain --domain-name
domain-name
\ --vpc-idvpc-id
--subnet-idssubnet-ids
--auth-mode IAM \ --default-user-settings file://default-user-settings.json \ --default-space-settings "ExecutionRole=execution-role-arn
"
在此範例中,檔案default-user-settings.json
具有下列設定,其中包含 CustomPosixUserConfig
和 CustomFileSystemConfigs
金鑰。
{ "ExecutionRole": "
execution-role-arn
", "CustomPosixUserConfig": { "Uid":UID
, "Gid":GID
}, "CustomFileSystemConfigs": [ { "EFSFileSystemConfig": { "FileSystemId": "file-system-id
", "FileSystemPath": "/
" } } ] }
此範例組態具有下列金鑰:
ExecutionRole
-
網域使用者的預設執行角色。
CustomPosixUserConfig
-
用於檔案系統操作的預設POSIX身分。您可以使用這些設定,將現有的POSIX許可結構套用至存取自訂檔案系統的使用者設定檔。在POSIX許可層級,您可以控制哪些使用者可以存取檔案系統,以及他們可以存取哪些檔案或資料。
您也可以使用
create-user-profile
命令在建立使用者設定檔時套用CustomPosixUserConfig
設定。您套用至使用者設定檔的設定會覆寫您套用至關聯網域的設定。注意
您可以在使用
create-domain
和create-user-profile
命令時套用CustomPosixUserConfig
設定。不過,當您執行下列動作時,無法套用這些設定:-
針對已與任何使用者設定檔建立關聯的網域使用
update-domain
命令。您只能將這些設定套用至沒有使用者設定檔的網域。 -
使用
update-user-profile
命令。若要將這些設定套用到您已建立的設定檔,請刪除設定檔,然後建立新的具有更新設定的設定檔。
-
Uid
-
POSIX 使用者 ID。預設值為 200001。
Gid
-
POSIX 群組 ID。預設值為 1001。
CustomFileSystemConfigs
-
自訂檔案系統的設定 (僅支援 Amazon EFS 檔案系統)。
您也可以在使用
create-user-profile
或update-user-profile
命令時,將CustomFileSystemConfigs
設定套用至使用者設定檔。使用者設定檔將可存取這些檔案系統,以及您連接至其網域的任何檔案系統。 EFSFileSystemConfig
-
自訂 Amazon EFS 檔案系統的設定。
FileSystemId
-
Amazon EFS 檔案系統的 ID。
FileSystemPath
-
Studio 中網域使用者可存取的檔案系統目錄路徑。允許的使用者只能存取此目錄和以下版本。預設路徑是檔案系統根目錄:
/
。
SageMaker 在下列路徑建立符號連結:/home/sagemaker-user/custom-file-systems/
。如此一來,網域使用者可以從其主目錄 導覽至自訂檔案系統file-system-type
/file-system-id
/home/sagemaker-user
。
將自訂檔案系統連接至網域後,網域使用者可以在使用 create-space 命令時將檔案系統連接至空間。
範例 create-space
命令搭配自訂檔案系統
下列範例會將檔案系統連接至新的空間。
aws sagemaker create-space \ --space-name
space-name
\ --domain-iddomain-id
\ --ownership-settings "OwnerUserProfileName=user-profile-name
" \ --space-sharing-settings "SharingType=Private" \ --space-settings file://space-settings.json
在此範例中,檔案space-settings.json
具有下列設定,其中包含具有 FileSystemId
金鑰的CustomFileSystems
組態。
{ "AppType": "JupyterLab", "JupyterLabAppSettings": { "DefaultResourceSpec": { "InstanceType": "
ml.t3.xlarge
" } }, "CustomFileSystems": [ { "EFSFileSystem": { "FileSystemId": "file-system-id
" } } ] }