本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为域添加自定义文件系统
当您创建域时,Amazon A SageMaker I 会向该域添加一个默认 Amazon Elastic File System (Amazon EFS)卷。 SageMaker AI 为你创建了这个音量。您还可以选择添加自己创建的自定义 Amazon EFS 或自定义 Amazon FSx for Lustre 文件系统。添加后,属于您的域的用户就可以使用您的文件系统。您的用户在使用 Amazon SageMaker Studio 时可以访问文件系统。他们可以将文件系统附加到为以下支持的应用程序创建的空间:
-
JupyterLab
-
代码编辑器
运行空间并启动应用程序后,用户就可以访问文件系统中包含的任何数据、代码或其他构件。
您可以通过以下方式让用户访问文件系统:
-
通过共享空间:属于您的域的任何用户都可以创建共享空间。然后,属于您的域的任何用户都可以使用它。
-
通过专用空间:属于您的域的任何用户都可以创建专用空间。然后,只有该用户才能使用。
-
仅作为单个用户:如果您不想让所有用户都能访问文件系统,可以只让特定用户访问文件系统。如果这样做,文件系统就只能在特定用户创建的专用空间中使用。
您可以使用 Amazon SageMaker API 添加自定义文件系统 AWS SDKs、或 AWS CLI。您无法使用 SageMaker AI 控制台添加自定义文件系统。
先决条件
在向域中添加自定义文件系统之前,必须满足以下要求:
-
你在 SageMaker AI 中有一个域名。在添加文件系统之前,您需要域 ID。您可以使用 SageMaker AI 控制台查找 ID。您也可以使用 AWS CLI运行
list-domains
命令。 -
您的 Amazon EFS 或 FSx 适用于 Lustre 的文件系统。 AWS 账户
对于亚马逊 EFS:
-
有关创建 Amazon EFS 的步骤,请参阅亚马逊弹性文件系统用户指南中的创建 Amazon E FS 文件系统。
-
在 Studio 访问文件系统之前,它必须在与网域相关联的每个子网中都有一个挂载目标。有关为子网分配挂载目标的更多信息,请参阅《Amazon Elastic File System 用户指南》中的创建和管理挂载目标和安全组。
-
对于每个挂载目标,您必须添加 Amazon A SageMaker I 在创建域 AWS 账户 时在您的中创建的安全组。安全组名称的格式为
security-group-for-inbound-nfs-
。domain-id
-
您的 IAM 权限必须允许您使用
elasticfilesystem:DescribeMountTargets
操作。有关此操作的更多信息,请参阅服务授权参考中的 Amazon Elastic File System 的操作、资源和条件键。
对于 fo FSx r Lustre:
-
有关创建 for Lustre FSx 的步骤,请参阅《亚马逊 for L ustre 用户指南》中的 Ama FSx zon for Lustre 入门。 FSx
-
确保 f FSx or Lustre 文件系统与您的域位于同一 VPC 中,并且位于域中存在的其中一个子网中。
-
在 Studio 可以访问 fo FSx r Lustre 文件系统之前,请附上
SecurityGroupIdForInboundNfs
所有 ENIs Lustre 文件系统 FSx 。 FSx 为此,你可以在控制台中前往 Lustre 文件系统,然后单击To see all the ENIs, see the Amazon EC2 console
其中可以查看 Lustre 的所有 ENIs 附件。 FSx或者,你也可以通过调用
fsx:describeFileSystems
API AWS CLI 或 API 找到 ENIs 附件 for Lustre。 FSx 对于 for Lustre 的每个 ENI,您都必须添加 Amazon SageMaker AI 在创建域 AWS 账户 时在您的中创建的安全组。 FSx 安全组名称的格式为security-group-for-inbound-nfs-
。如果不执行此步骤,应用程序创建将因客户错误而失败。domain-id
-
使用以下命令将自定义文件系统添加到域中 AWS CLI
要使用将自定义文件系统添加到域或用户配置文件中 AWS CLI,请在使用以下任一命令时传递CustomFileSystemConfigs
定义:
以下示例展示了如何将文件系统添加到现有域或用户配置文件中。
添加可在共享空间中访问的文件系统
-
更新域的默认空间设置。下面的示例将文件系统设置添加到默认空间设置中:
aws sagemaker update-domain --domain-id
domain-id
\ --default-space-settings file://file-system-settings.json该示例将文件系统配置作为 JSON 文件传递,稍后的示例将展示该文件。
添加可在专用空间访问的文件系统
-
更新域的默认用户设置。下面的示例将文件系统设置添加到默认用户设置中:
aws sagemaker update-domain --domain-id
domain-id
\ --default-user-settings file://file-system-settings.json该示例将文件系统配置作为 JSON 文件传递,稍后的示例将展示该文件。
要添加只能由单个用户访问的文件系统
-
更新用户的用户配置文件。下面的示例将文件系统设置添加到用户配置文件中:
aws sagemaker update-user-profile --domain-id
domain-id
\ --user-profile-nameuser-profile-name
\ --user-settings file://file-system-settings.json该示例将文件系统配置作为 JSON 文件传递,如下例所示。
例 文件系统设置文件
前面示例中的文件 file-system-settings.json
有以下设置:
将文件系统指定为域的默认空间设置时,还必须在设置中包含执行角色:
{ "ExecutionRole": "
execution-role-arn
" }
本配置示例的键如下:
ExecutionRole
-
域用户的默认执行角色。
如果想在文件系统中应用 POSIX 权限,也可以将以下设置传递给 create-domain
或 create-user-profile
命令:
{ "CustomPosixUserConfig": { "Uid":
UID
, "Gid":GID
} }
本配置示例包含以下按键:
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。
使用 AWS CLI将自定义文件系统附加到空间
将自定义文件系统添加到域后,域用户就可以将文件系统附加到他们创建的空间。例如,在使用 Studio 或带有 AWS CLI的 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
配置。SageMaker AI在以下路径上创建符号链接:
/home/sagemaker-user/custom-file-systems/
. 这样,域用户就可以在自己的主目录file-system-type
/file-system-id
/home/sagemaker-user
中导航到自定义文件系统。