为 AppStream 2.0 用户启用和管理主文件夹 - 亚马逊 AppStream 2.0

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

为 AppStream 2.0 用户启用和管理主文件夹

AppStream 2.0 支持组织中的用户使用以下永久存储选项:

  • 主文件夹

  • 适用于谷歌工作区的谷歌云端硬盘

  • OneDrive 商务用

您可以为您的组织启用一个或多个选项。当您为 AppStream 2.0 堆栈启用主文件夹时,该堆栈的用户可以在应用程序流式传输会话期间访问永久存储文件夹。您的用户不必进行任何额外配置即可访问其主文件夹。用户存储在其主文件夹中的数据会自动备份到您的 Amazon Web Services 账户的 Amazon Simple Storage Service(Amazon S3)存储桶中,并且可以在后续会话中供这些用户使用。

使用 Amazon S3 的 SSL 端点对文件和文件夹进行传输中加密。使用 Amazon S3 托管的加密密钥对文件和文件夹进行静态加密。

主文件夹存储在位于以下默认位置的实例集实例中:

  • 对于单会话, non-domain-joined Windows 实例:C:\Users\\ 我的文件PhotonUser\ Home Folder

  • 对于多会话, non-domain-joined Windows 实例:C:\Users\as2-xxxxxxxx\ 我的文件\ Home Folder,其中 as2-xxxxxxxxx 是分配给每个用户会话的随机用户名。您可以通过环境变量 $USERNAME 来确定本地用户名。

  • 加入域的 Windows 实例:C:\Users\%username%\My Files\Home Folder

  • Linux 实例:~/ MyFiles HomeFolder

作为管理员,如果您要将应用程序配置为保存到此主文件夹,请使用适用的路径。在某些情况下,您的用户可能无法找到其主文件夹,因为有些应用程序无法识别将主文件夹显示为文件浏览器中的顶级文件夹的重定向。如果是这种情况,您的用户可以通过浏览到文件浏览器中的相同目录来访问其主文件夹。

与计算密集型应用程序关联的文件和目录

在 AppStream 2.0 流式传输会话中,将与计算密集型应用程序关联的大型文件和目录保存到永久存储所需的时间可能比保存基本生产力应用程序所需的文件和目录更长。例如,与保存执行单次写入操作的应用程序创建的文件相比,应用程序保存大量数据或频繁修改相同文件所需的时间可能更长。保存许多小文件也可能需要更长时间。

如果您的用户保存与计算密集型应用程序关联的文件和目录,而且 AppStream 2.0 永久存储选项的性能不如预期,我们建议您使用服务器消息块 (SMB) 解决方案,例如适用于 Windows File Server 的 Amazon FSx 或文件网关。 AWS Storage Gateway 以下是与更适合与这些 SMB 解决方案一起使用的计算密集型应用程序关联的文件和目录示例:

  • 集成式开发环境(IDE)的工作区文件夹

  • 本地数据库文件

  • 图形仿真应用程序创建的暂存空间文件夹

有关更多信息,请参阅:

为您的 AppStream 2.0 用户启用主文件夹

在启用主文件夹之前,您必须执行以下操作:

您可以在创建堆栈时启用或禁用主文件夹(参见创建堆栈),也可以在创建堆栈之后使用 for AppStream 2.0、 AWS SDK 或启用或禁 AWS Management Console 用主文件夹 AWS CLI。对于每个 AWS 区域,主文件夹都由 Amazon S3 存储桶进行备份。

在您首次为某个区域的 AppStream 2.0 堆栈启用主文件夹时, AWS 该服务会在同一地区的账户中创建一个 Amazon S3 存储桶。这个存储桶用于存储该区域中所有用户和所有堆栈的主文件夹的内容。有关更多信息,请参阅Amazon S3 存储桶存储

注意

有关您可以为用户提供的指导,以帮助他们在 AppStream 2.0 流式传输会话期间开始使用主文件夹,请参阅使用主文件夹

在创建堆栈时启用主文件夹
  • 按照创建堆栈中的步骤操作,并确保选中了 Enable Home Folders (启用主文件夹)

为现有堆栈启用主文件夹
  1. 打开 AppStream 2.0 主机,网址为 https://console.aws.amazon.com/appstream2

  2. 在左侧导航窗格中,选择 Stacks (堆栈),然后选择要为其启用主文件夹的堆栈。

  3. 在堆栈列表下方,选择 Storage (存储) 并选择 Enable Home Folders (启用主文件夹)

  4. Enable Home Folders (启用主文件夹) 对话框中,选择 Enable (启用)

管理您的主文件夹

禁用主文件夹

您可以禁用堆栈的主文件夹 (已存储在主文件夹中的用户内容不会丢失)。禁用堆栈的主文件夹会产生以下影响:

  • 连接到堆栈的活动流式传输会话的用户将收到一条错误消息,告知他们无法再将内容存储在其主文件夹中。

  • 使用已禁用主文件夹的堆栈的任何新会话都不会显示主文件夹。

  • 为一个堆栈禁用主文件夹不会为其他堆栈禁用主文件夹。

  • 即使所有堆栈的主文件夹都处于禁用状态, AppStream 2.0 也不会删除用户内容。

要恢复对堆栈主文件夹的访问,请按照此主题中前述的步骤重新启用主文件夹。

在创建堆栈时禁用主文件夹
  • 按照创建堆栈中的步骤操作,并确保清除了 Enable Home Folders (启用主文件夹) 选项。

为现有堆栈禁用主文件夹
  1. 打开 AppStream 2.0 主机,网址为 https://console.aws.amazon.com/appstream2

  2. 在左侧导航窗格中,选择 Stacks (堆栈),然后选择堆栈。

  3. 在堆栈列表下方,选择 Storage (存储) 并清除 Enable Home Folders (启用主文件夹)

  4. Disable Home Folders (禁用主文件夹) 对话框中,键入 CONFIRM(区分大小写)来确认您的选择,然后选择 Disable (禁用)

Amazon S3 存储桶存储

AppStream 2.0 使用在您的账户中创建的 Amazon S3 存储桶管理存储在主文件夹中的用户内容。对于每个 AWS 区域, AppStream 2.0 都会在您的账户中创建一个存储桶。从该区域中的堆栈的流式传输会话生成的所有用户内容都存储在该存储桶中。存储桶完全由服务托管,管理员不必输入任何内容或进行任何配置。存储桶以特定格式命名,如下所述:

appstream2-36fb080bb8-region-code-account-id-without-hyphens

创建堆栈的 AWS 区域代码在哪里region-codeaccount-id-without-hyphens是您的亚马逊 Web Services 账户 ID。存储桶名称的第一部分 appstream2-36fb080bb8- 不随账户或区域而改变。

例如,如果您为账号 123456789012 在美国西部(俄勒冈)(us-west-2)区域中的堆栈启用主文件夹,此服务会在该区域中创建一个具有所示名称的 Amazon S3 存储桶。只有具有足够权限的管理员才能删除此存储桶。

appstream2-36fb080bb8-us-west-2-123456789012

如上文所述,对堆栈禁用主文件夹不会删除存储在 Amazon S3 存储桶中的任何用户内容。要永久删除用户内容,必须由具有足够访问权限的管理员从 Amazon S3 控制台进行删除。 AppStream 2.0 添加了防止意外删除存储桶的存储桶策略。有关更多信息,请参阅使用 IAM 策略管理管理员对主文件夹和应用程序设置持久性 Amazon S3 存储桶的访问权限

主文件夹内容同步

启用主文件夹后, AppStream 2.0 会为每个用户创建一个用于存储其内容的唯一文件夹。创建该文件夹作为唯一的 Amazon S3 前缀,该前缀使用 Amazon Web Services 账户和区域的 S3 存储桶中的用户名哈希。 AppStream 2.0 在 Amazon S3 中创建主文件夹后,它会将该文件夹中访问的内容从 S3 存储桶复制到队列实例。这使用户能够在流式传输会话期间从实例集实例快速访问其主文件夹内容。您对 S3 存储桶中用户主文件夹内容所做的更改以及用户在队列实例上对其主文件夹内容所做的更改将在 Amazon S3 和 AppStream 2.0 之间同步,如下所示。

  1. 在用户的 AppStream 2.0 直播会话开始时, AppStream 2.0 会对存储在您的 Amazon Web Services 账户和区域的 Amazon S3 存储桶中的该用户的主文件夹文件进行分类。

  2. 用户的主文件夹内容也存储在他们从中进行直播的 AppStream 2.0 队列实例中。当用户访问 AppStream 2.0 队列实例上的主文件夹时,将显示已编目文件列表。

  3. AppStream 只有当用户在流式传输会话期间使用流媒体应用程序打开文件后,2.0 才会将文件从 S3 存储桶下载到队列实例。

  4. 在 AppStream 2.0 版本将文件下载到队列实例后,将在访问文件后进行同步

  5. 如果用户在流式传输会话期间更改了文件,则 AppStream 2.0 会定期或在流式传输会话结束时将文件的新版本从队列实例上传到 S3 存储桶。但是,在流式传输会话期间,不会再次从 S3 存储桶下载该文件。

以下各部分介绍了在 Amazon S3 中添加、替换或删除用户的主文件夹文件时的同步行为。

同步您添加到 Amazon S3 中用户主文件夹中的文件

如果您将新文件添加到 S3 存储桶中用户的主文件夹, AppStream 2.0 会在几分钟内对该文件进行编目并将其显示在用户主文件夹中的文件列表中。但是,只有在用户在流式传输会话期间使用应用程序打开文件后,才会将此文件从 S3 存储桶下载到实例集实例。

同步您替换的 Amazon S3 中用户主文件夹中的文件

如果用户在流式传输会话期间打开实例集实例上主文件夹中的文件,并且在该用户处于活动状态的流式传输会话期间,您将 S3 存储桶中其主文件夹中的相同文件替换为新版本,则不会立即将该文件的新版本下载到实例集实例。只有在用户启动新的流式传输会话并再次打开文件后,才会将新版本从 S3 存储桶下载到实例集实例。

同步您从 Amazon S3 中的用户主文件夹中删除的文件

如果用户在流式传输会话期间打开实例集实例上主文件夹中的文件,并且在该用户处于活动状态的流式传输会话期间,您将该文件从 S3 存储桶中的其主文件夹中删除,此文件将在用户执行以下任一操作之后从实例集实例中删除:

  • 再次打开主文件夹

  • 刷新主文件夹

主文件夹格式

用户文件夹的层次结构视用户启动流式传输会话的方式而定,如以下各节所述。

AWS 软件开发工具包和 AWS CLI

对于使用 CreateStreamingURLcreate-streaming-url 启动的会话,用户文件夹的结构如下:

bucket-name/user/custom/user-id-SHA-256-hash/

其中bucket-name,采用中Amazon S3 存储桶存储显示的格式,user-id-SHA-256-hash是使用小写的 SHA-256 哈希十六进制字符串创建的用户特定的文件夹名称,该字符串是根据传递给 CreateStreaming URL API 操作或命令的UserId值生成的。create-streaming-url有关更多信息,请参阅 Amazon AppStream 2.0 API 参考AWS CLI 命令参考create-streaming-url中的 CreateStreamingURL

以下示例文件夹结构适用于在美国西部(俄勒冈)区域 (us-west-2) 中使用 API 或 AWS CLI 账户编号为 123456789012 的 UserId testuser@mydomain.com 进行会话访问:

appstream2-36fb080bb8-us-west-2-123456789012/user/custom/a0bcb1da11f480d9b5b3e90f91243143eac04cfccfbdc777e740fab628a1cd13/

您可以通过网站或网上提供的开源编码库生成 UserId 的小写 SHA-256 哈希值,并据此确定特定用户的文件夹。

SAML 2.0

对于使用 SAML 联合创建的会话,用户文件夹的结构如下:

bucket-name/user/federated/user-id-SHA-256-hash/

在本例中,user-id-SHA-256-hash 是文件夹名称 (使用在 SAML 联合请求中传递的 NameID SAML 属性值生成的小写 SHA-256 哈希十六进制字符串创建)。要区分隶属两个不同的域的同名用户,请在发送 SAML 请求时使用 domainname\username 格式的 NameID。有关更多信息,请参阅亚马逊 AppStream 2.0 与 SAML 2.0 集成

下面的示例文件夹结构适用于使用 SAML 联合且 NameID 为 SAMPLEDOMAIN\testuser、账户 ID 为 123456789012、区域为美国西部(俄勒冈)的会话访问:

appstream2-36fb080bb8-us-west-2-123456789012/user/federated/8dd9a642f511609454d344d53cb861a71190e44fed2B8aF9fde0C507012a9901

当 NameID 字符串的部分或全部大写时(如示例中的域名 SAMPLED OMAIN), AppStream 2.0 会根据字符串中使用的大小写生成哈希值。使用此示例,SAMPLEDOMAIN\testuser 的哈希值为 8DD9A642F511609454D344D53CB861A71190E44FED2B8AF9FDE0C507012A9901。在该用户的文件夹中,此值显示为小写,如下所示:8dd9a642f511609454d344d53cb861a71190e44fed2B8aF9fde0C507012a9901。

您可以通过网站或网上提供的开源编码库生成 NameID 的 SHA-256 哈希值,并据此确定特定用户的文件夹。

使用 AWS Command Line Interface 或 S AWS DK

您可以使用 AWS CLI 或 AWS SDK 启用和禁用堆栈的主文件夹。

在创建新堆栈时,可以使用下面的 create-stack 命令启用主文件夹:

aws appstream create-stack --name ExampleStack --storage-connectors ConnectorType=HOMEFOLDERS

可以使用下面的 update-stack 命令为现有堆栈启用主文件夹:

aws appstream update-stack --name ExistingStack --storage-connectors ConnectorType=HOMEFOLDERS

可以使用下面的命令为现有堆栈禁用主文件夹。该命令不会删除任何用户数据。

aws appstream update-stack --name ExistingStack --delete-storage-connectors

其他资源

有关管理 Amazon S3 存储桶和最佳实践的更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的以下主题: