将自定义文件系统附加到域名或用户配置文件 - Amazon SageMaker

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将自定义文件系统附加到域名或用户配置文件

当您创建域名时,亚马逊 SageMaker 会自动将其与为您 SageMaker 创建的 Amazon Elastic File System (亚马逊EFS)卷相关联。您还可以选择将域名与您在中创建的自定义 Amazon EFS 文件系统相关联 AWS 账户。该文件系统可供所有在使用 Amazon SageMaker Studio 时属于该域的用户使用。用户可以将文件系统连接到他们为支持的应用程序 JupyterLab 和代码编辑器创建的任何空间。然后,在运行空间并启动应用程序后,他们可以访问文件系统包含的任何数据、代码或其他工件。

如果您不想允许某个域的所有用户访问文件系统,则可以将其附加到特定的用户配置文件中。如果这样做,则文件系统仅在关联用户创建的空间中可用。

您可以使用 Amazon SageMaker API、或 AWS SDKs,附加自定义文件系统 AWS CLI。您无法使用 SageMaker 控制台附加自定义文件系统。

先决条件

在将自定义 Amazon EFS 文件系统附加到域之前,您必须满足以下要求:

将自定义文件系统附加到 AWS CLI

要使用将自定义文件系统附加到域或用户配置文件 AWS CLI,请在使用以下任一命令时传递CustomFileSystemConfigs定义:

例 使用自定义文件系统创建域命令

以下示例将文件系统附加到新域。

aws sagemaker create-domain --domain-name domain-name \ --vpc-id vpc-id --subnet-ids subnet-ids --auth-mode IAM \ --default-user-settings file://default-user-settings.json \ --default-space-settings "ExecutionRole=execution-role-arn"

在此示例中,该文件default-user-settings.json具有以下设置,其中包括CustomPosixUserConfigCustomFileSystemConfigs键。

{ "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-domaincreate-user-profile命令时,可以应用CustomPosixUserConfig设置。但是,当你执行以下操作时,你无法应用这些设置:

  • 对已与任何用户配置文件关联的域使用该update-domain命令。您只能将这些设置应用于没有用户配置文件的域名。

  • 使用 update-user-profile 命令。要将这些设置应用于您已经创建的个人资料,请删除该配置文件,然后创建一个具有更新设置的新配置文件。

Uid

POSIX用户 ID。默认值为 200001。

Gid

群POSIX组 ID。默认值为 1001。

CustomFileSystemConfigs

自定义文件系统的设置(仅支持 Amazon EFS 文件系统)。

使用create-user-profileupdate-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-id domain-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" } } ] }