本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将自定义文件系统附加到域名或用户配置文件
当您创建域名时,亚马逊 SageMaker 会自动将其与为您 SageMaker 创建的 Amazon Elastic File System (亚马逊EFS)卷相关联。您还可以选择将域名与您在中创建的自定义 Amazon EFS 文件系统相关联 AWS 账户。该文件系统可供所有在使用 Amazon SageMaker Studio 时属于该域的用户使用。用户可以将文件系统连接到他们为支持的应用程序 JupyterLab 和代码编辑器创建的任何空间。然后,在运行空间并启动应用程序后,他们可以访问文件系统包含的任何数据、代码或其他工件。
如果您不想允许某个域的所有用户访问文件系统,则可以将其附加到特定的用户配置文件中。如果这样做,则文件系统仅在关联用户创建的空间中可用。
您可以使用 Amazon SageMaker API、或 AWS SDKs,附加自定义文件系统 AWS CLI。您无法使用 SageMaker 控制台附加自定义文件系统。
先决条件
在将自定义 Amazon EFS 文件系统附加到域之前,您必须满足以下要求:
-
您的 Amazon EFS 文件系统中有一个 Amazon 文件系统 AWS 账户。有关创建亚马逊文件系统的步骤,请参阅《Amazon Elastic EFS 文件系统用户指南》中的创建您的亚马逊文件系统。
-
在 Studio 可以访问您的文件系统之前,它必须在您与该域关联的每个子网中都有一个挂载目标。有关为子网分配挂载目标的更多信息,请参阅 Amazon Elastic File System 用户指南中的创建和管理挂载目标和安全组。
-
对于每个挂载目标,您必须添加 Amazon 在 SageMaker 创建域 AWS 账户 时在您的中创建的安全组。安全组名称的格式为
security-group-for-inbound-nfs-
。domain-id
-
您的IAM权限必须允许您使用该
elasticfilesystem:DescribeMountTargets
操作。有关此操作的更多信息,请参阅《服务授权参考》中的 Amazon Elastic File System 的操作、资源和条件密钥。
将自定义文件系统附加到 AWS CLI
要使用将自定义文件系统附加到域或用户配置文件 AWS CLI,请在使用以下任一命令时传递CustomFileSystemConfigs
定义:
例 使用自定义文件系统创建域命令
以下示例将文件系统附加到新域。
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
-
您的亚马逊EFS文件系统的 ID。
FileSystemPath
-
域用户在 Studio 中的空间中可以访问的文件系统目录的路径。允许的用户只能访问此目录及以下目录。默认路径是文件系统根目录:
/
。
SageMaker 在以下路径创建符号链接:/home/sagemaker-user/custom-file-systems/
。这样,域用户就可以从其主目录中导航到自定义文件系统file-system-type
/file-system-id
/home/sagemaker-user
。
将自定义文件系统附加到域后,域用户可以在使用 create-space 命令时将文件系统附加到空间。
例 使用自定义文件系统的 create-s
pace 命令
以下示例将文件系统附加到新空间。
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
" } } ] }