队列和堆栈 - Amazon AppStream on

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

队列和堆栈

使用 Amazon AppStream 2.0,您可以创建队列实例和堆栈,这是流式传输应用程序流程的一部分。队列 由运行您指定的映像的流实例组成。堆栈 由关联的队列、用户访问策略和存储配置组成。

队列类型

队列类型允许您决定您的实例何时运行以及如何为其付费。您的实例何时运行决定了您的用户应用程序在被选中时启动的速度。您在创建舰队时指定舰队类型,并且在创建舰队后无法更改舰队类型。

可用的舰队类型有:

永远在线

即使没有用户在流式传输应用程序和桌面,流媒体实例也会持续运行。

个按需

只有当用户正在流式传输应用程序和桌面时,流媒体实例才会运行。尚未分配给用户的流媒体实例处于停止状态。

灵活应变

流实例池由 AppStream 2.0 管理。用户选择要启动的应用程序或桌面时,他们将在应用程序块已下载并已安装到流实例后开始流式传输。有关为您的 Elastic 队列创建应用程序块的更多信息,请参阅为 Elastic 队列创建和管理应用程序块和应用程序

使用永续队列可为您的用户提供对其应用程序的即时访问。使用按需队列可优化您的流式处理费用,让您的用户在 1-2 分钟等待后访问其应用程序。有关更多信息,请参阅亚马逊 AppStream 2.0 定价 2.0 定价

会话上下文

可使用以下任一方法将参数传输:

如果您的映像使用在 2018 年 10 月 30 日或之后发布的 AppStream 2.0 代理版本,则会话上下文将作为 Windows 或 Linux 环境变量存储在映像中。有关特定环境变量的信息,请参阅中的 “ AppStream 2.0 队列的用户和实例元数据”自定义 AppStream 2.0 队列以优化用户的应用程序流媒体体验

注意

在 AppStream 2.0 流式传输 URL 中,用户可以看到会话上下文参数。我们强烈建议您切勿在会话上下文参数中输入机密或敏感信息。由于用户可以修改流式传输 URL,因此我们建议执行额外验证,以确定会话上下文对最终用户有效。例如,您可以将会话上下文与其他会话信息进行比较,例如 AppStream 2.0 队列的用户和实例元数据。

AppStream 2.0 不对会话上下文参数进行验证。

使用会话上下文将参数传递给流应用程序

在以下步骤中,您将使用会话上下文启动网络浏览器并自动打开特定网站。对于运行 Windows 的实例,你将使用 Firefox。对于运行 Linux 的实例,你将使用 Chromium。

使用会话上下文启动网站
  1. 在左侧导航窗格中,依次选择 Images (映像)Image Builder (映像生成器)

  2. 选择要使用的映像生成器,验证它是否处于 Running (正在运行) 状态,然后选择 Connect (连接)

  3. 在 “本地用户” 选项卡上选择 “管理员”,登录到映像生成器。

  4. 创建 C:\ 的一个子文件夹。对于本示例,请使用 C:\Scripts

  5. 在新文件夹中创建一个 Windows 批处理文件。对于此示例,创建 C:\Scripts\session-context-test.bat 并添加脚本,此脚本使用来自会话上下文的 URL 启动 Firefox。

    使用以下脚本:

    CD "C:\Program Files (x86)\Mozilla Firefox" Start firefox.exe %APPSTREAM_SESSION_CONTEXT%
  6. 在 Image Assistant 中,添加 session-context-test.bat 并将名称更改为 Firefox

    您不需要添加 Firefox。此步骤只要求您添加批处理文件。

  7. 创建映像、队列和堆栈。对于此示例,使用队列名称 session-context-test-fleet 和堆栈名称 session-context-test-stack

  8. 队列运行后,您可以使用session-context参数create-streaming-url进行调用,如本示例所示。

    aws appstream create-streaming-url --stack-name session-context-test-stack \ --fleet-name session-context-test-fleet \ --user-id username –-validity 10000 \ --application-id firefox --session-context "www.amazon.com"
  9. 在浏览器中打开流式处理 URL。脚本文件启动 Firefox 并加载http://www.amazon.com

同需,您可以执行以下步骤将参数传输 Linux 流式传输。

将参数传递给您的 Linux 流媒体应用程序
  1. 在左侧导航窗格中,依次选择 Images (映像)Image Builder (映像生成器)

  2. 选择要使用的映像生成器,验证它是否处于 Running (正在运行) 状态,然后选择 Connect (连接)

  3. 默认情况下,以身份登录到映像生成器ImageBuilderAdmin

  4. 通过运行以下命令创建脚本文件(例如 launch-chromium.sh):

    sudo vim /usr/bin/launch-chromium.sh

  5. 编写脚本并设置可执行权限,例如:

    注意

    #! 脚本中始终需要 /bin/bash 和源 /etc/profile。

    #!/bin/bash source /etc/profile /usr/bin/chromium-browser $APPSTREAM_SESSION_CONTEXT
  6. 使用 Image Assistant CLI 添加 launch-chromium.sh:

    sudo AppStreamImageAssistant add-application \ --name chromium \ --absolute-app-path /usr/bin/launch-chromium.sh
  7. 创建映像、队列和堆栈。对于此示例,使用队列名称 session-context-test-fleet 和堆栈名称 session-context-test-stack

  8. 队列运行后,您可以使用session-context参数create-streaming-url进行调用,如本示例所示。

    aws appstream create-streaming-url --stack-name session-context-test-stack \ --fleet-name session-context-test-fleet \ --user-id username \ --application-id chromium --session-context "www.amazon.com"
  9. 在浏览器中打开流式处理 URL。批处理文件启动 Chromium 并加载http://www.amazon.com