使用 Image Assistant CLI 操作以编程方式创建 AppStream 2.0 映像 - 亚马逊 AppStream 2.0

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

使用 Image Assistant CLI 操作以编程方式创建 AppStream 2.0 映像

您可以通过连接到映像生成器,并使用 Image Assistant 图形用户界面 (GUI) 或命令行界面 (CLI) 操作来创建 Amazon AppStream 2.0 映像。Image Assistant CLI 操作提供了与 Image Assistant GUI 类似的功能。通过这些操作,您可以以编程方式执行以下操作:

  • 管理映像中包含的应用程序。

  • 保存、更新和重置默认应用程序设置。

  • 启用或禁用 AppStream 2.0 动态应用程序框架。

  • 指定标签。

  • 创建映像。

您可以使用这些操作将 AppStream 2.0 映像创建与持续集成或部署软件开发过程相集成。

要使用 Image Assistant CLI 操作,请在映像生成器上使用您选择的命令行 shell。例如,您可以使用 Windows 命令提示符或 PowerShell。

注意

映像生成器必须使用 2019 年 7 月 26 日或之后发布的 AppStream 2.0 代理版本。如果没有映像生成器,您必须创建一个。有关更多信息,请参阅启动映像生成器来安装和配置流应用程序

使用 Image Assistant CLI 操作创建默认应用程序和 Windows 设置

您可以创建默认应用程序和 Windows 设置,以便用户可以快速开始使用他们的应用程序。在您创建这些设置时,AppStream 2.0 会使用您配置的配置文件替换 Windows 默认用户配置文件,然后使用 Windows 默认用户配置文件在实例集实例中为用户创建初始设置。如果您使用 Image Assistant CLI 操作创建这些设置,则应用程序安装程序或自动化应该会直接修改 Windows 默认用户配置文件。

要使用其他 Windows 用户的配置文件覆盖 Windows 默认用户配置文件,您也可以使用 Image Assistant update-default-profile CLI 操作。

有关配置默认应用程序和 Windows 设置的更多信息,请参阅默认应用程序和 Windows 设置及应用程序启动性能中的为 AppStream 2.0 用户创建默认应用程序和 Windows 设置

使用 Image Assistant CLI 操作优化应用程序的启动性能

借助 AppStream 2.0,您可以为用户的流式传输会话优化您的应用程序的启动性能。使用 Image Assistant CLI 操作执行此操作时,您可以指定要针对应用程序启动进行优化的文件。通过将文件添加到应用程序优化清单,您可以缩短在新实例集实例上首次启动该应用程序所需的时间。但是,这也增加了实例集实例做好准备以供用户使用的时间。优化清单是每个应用程序的行分隔文本文件。

注意

如果您同时使用 Image Assistant CLI 操作和 Image Assistant GUI 来配置应用程序优化清单,则两份清单将会合并。

下面是一个应用程序优化清单文件的示例:

C:\Program Files (x86)\Notepad++\autoCompletion C:\Program Files (x86)\Notepad++\localization C:\Program Files (x86)\Notepad++\plugins C:\Program Files (x86)\Notepad++\themes C:\Program Files (x86)\Notepad++\updater C:\Program Files (x86)\Notepad++\userDefineLangs C:\Program Files (x86)\Notepad++\change.log C:\Program Files (x86)\Notepad++\config.xml C:\Program Files (x86)\Notepad++\contextMenu.xml C:\Program Files (x86)\Notepad++\doLocalConf.xml C:\Program Files (x86)\Notepad++\functionList.xml C:\Program Files (x86)\Notepad++\langs.model.xml C:\Program Files (x86)\Notepad++\license.txt C:\Program Files (x86)\Notepad++\notepad++.exe C:\Program Files (x86)\Notepad++\readme.txt C:\Program Files (x86)\Notepad++\SciLexer.dll C:\Program Files (x86)\Notepad++\shortcuts.xml C:\Program Files (x86)\Notepad++\stylers.model.xml

有关优化应用程序启动性能的更多信息,请参阅默认应用程序和 Windows 设置及应用程序启动性能中的优化应用程序的启动性能

以编程方式创建 AppStream 2.0 映像的流程概述

您可以将 Image Assistant CLI 操作与应用程序安装自动化结合使用,以创建完全采用编程方式的 AppStream 2.0 映像创建工作流。在应用程序安装自动化完成之后、映像创建之前,请使用 Image Assistant CLI 操作指定以下内容:

  • 您的用户可以启动的可执行文件

  • 您应用程序的优化清单

  • 其他 AppStream 2.0 映像元数据

以下简要描述了以编程方式创建 AppStream 2.0 映像的过程。

  1. 使用应用程序安装自动化在映像生成器上安装所需的应用程序。此安装可能包括用户将启动的应用程序、所有依赖关系和后台应用程序。

  2. 确定要优化的文件和文件夹。

  3. 如果适用,请使用 Image Assistant add-application CLI 操作为 AppStream 2.0 映像指定应用程序元数据和优化清单。

  4. 要为 AppStream 2.0 映像指定其他应用程序,请根据需要为每个应用程序重复步骤 1 到 3。

  5. 如果适用,请使用 Image Assistant update-default-profile CLI 操作覆盖默认 Windows 配置文件,并为用户创建默认应用程序和 Windows 设置。

  6. 使用 Image Assistant create-image CLI 操作来创建映像。

用于创建和管理 AppStream 2.0 映像的 Image Assistant CLI 操作

本节介绍可用于创建和管理 AppStream 2.0 映像的 Image Assistant CLI 操作。

在 Windows 映像生成器中,包含命令行界面的可执行文件位于:C:\Program Files\Amazon\Photon\ConsoleImageBuilder\Image-Assistant.exe。为方便起见,此可执行文件包含在 Windows PATH 变量中。这让您可以调用 Image Assistant CLI 操作,而无需指定可执行文件的绝对路径。要调用这些操作,请键入 image-assistant.exe 命令。

在 Linux 映像生成器中,Image Assistant 工具位于 /usr/local/appstream/image-assistant/AppStreamImageAssistant,符号链接位于 /bin/AppStreamImageAssistant。

help 操作

检索所有 Image Assistant CLI 操作的列表。列表中的每个操作均提供了描述和使用语法。要显示特定操作的帮助,请键入操作的名称并指定 -help 参数。例如:

add-application --help

摘要

help

输出

将可用操作的列表及其功能描述打印到标准输出中。

add-application 操作

将应用程序添加到 AppStream 2.0 用户的应用程序列表中。此列表中的应用程序包含在应用程序目录中。在用户登录到 AppStream 2.0 流式传输会话时,会向用户显示应用程序目录。

注意

如果您需要更改应用程序配置,请移除该应用程序并添加具有更新设置的应用程序。

摘要

add-application --name <value> --absolute-app-path <value> [--display-name <value>] [--absolute-icon-path <value>] [--working-directory <value>] [--launch-parameters <""-escaped value>] [--absolute-manifest-path <value>]

选项

--name(字符串)

应用程序的唯一名称。最大长度为 256 个字符。最多可以添加 50 个应用程序。不能使用空格字符。

--absolute-app-path(字符串)

应用程序的可执行文件、批处理文件或脚本的绝对路径。该路径必须指向有效文件。

--display-name(字符串)

应用程序目录中为应用程序显示的名称。如果未指定显示名称,AppStream 2.0 将创建一个从可执行文件名派生的名称。创建的名称没有文件扩展名,并使用下划线代替空格。最大长度为 256 个字符。

--absolute-icon-path(字符串)

应用程序图标的绝对路径。该路径必须指向以下任一类型的有效的图标文件:.jpg、.png 或 .bmp。最大尺寸为:256 像素 x 256 像素。如果未指定路径,则使用可执行文件的默认图标(如果有)。如果可执行文件没有默认图标,则使用默认 AppStream 2.0 应用程序图标。

--working-directory(字符串)

启动应用程序时应用程序的初始工作目录。

--absolute-manifest-path(字符串)

新的行分隔文本文件的路径。该文件指定了在将实例集实例提供给用户进行流式传输之前要优化的文件的绝对路径。该路径必须指向有效的文本文件。

消息输出

退出代码 打印到标准输出的消息 描述
0 {"status": 0, "message": "Success"} 该应用程序已成功添加。
1 {"status": 1, "message": "Administrator privileges are required to perform this operation"} 必须有管理员权限才能完成操作。
1 {"status": 1, "message": "Unable to add more than 50 apps to the catalog."} 无法添加该应用程序,因为可以添加到 AppStream 2.0 应用程序目录的最大应用程序数为 50。
1 {"status": 1, "message": "Name is not unique"} AppStream 2.0 应用程序目录中已存在具有该名称的应用程序。
1 {"status": 1, "message": "File not found (absolute-app-path)"} 找不到为 absolute-app-path 指定的文件。
1 {"status": 1, "message": "Unsupported file extension"} Absolute-app-path 参数仅支持以下文件类型:.exe 和 .bat。
1 {"status": 1, "message": "Directory not found (working-directory)" 找不到为 working-directory 指定的目录。
1 {"status": 1, "message": "Optimization-manifest not found: <filename>"} 找不到为 optimization-manifest 指定的文件。
1 {"status": 1, "message": "File not found: <filename>"} 找不到优化清单中指定的文件。
255 {"status": 255, "message": <error message>} 出现意外错误。请重试该请求。如果错误仍然存在,请联系 AWS Support 寻求帮助。有关更多信息,请参阅 AWS Support 中心

remove-application 操作

从 AppStream 2.0 映像的应用程序列表中删除应用程序。应用程序未被卸载或修改,但用户无法从 AppStream 2.0 应用程序目录中启动它。

摘要

remove-application --name <value>

选项

--name(字符串)

要删除的应用程序的唯一标识符。

消息输出

退出代码 打印到标准输出的消息 描述
0 {"status": 0, "message": "Success"} 该应用程序已成功删除。
1 {"status": 1, "message": "Administrator privileges are required to perform this operation"} 必须有管理员权限才能完成操作。
1 {"status": 1, "message": "App not found"} 在 AppStream 2.0 应用程序目录中找不到指定的应用程序。
255 {"status": 255, "message": <error message>} 出现意外错误。请重试该请求。如果错误仍然存在,请联系 AWS Support 寻求帮助。有关更多信息,请参阅 AWS Support 中心

list-applications 操作

列出应用程序目录中指定的所有应用程序。

摘要

list-applications

消息输出

退出代码 打印到标准输出的消息 描述
0 {"status": 0, "message": "Success", "applications": [ {..app1.. }, { ..app2.. }]} AppStream 2.0 应用程序目录中的应用程序列表。
255 {"status": 255, "message": <error message>} 出现意外错误。请重试该请求。如果错误仍然存在,请联系 AWS Support 寻求帮助。有关更多信息,请参阅 AWS Support 中心

update-default-profile 操作

将指定的 Windows 用户的配置文件复制到 Windows 默认用户配置文件。进行流式传输的新用户将继承存储在指定配置文件中的设置。

注意

Linux Image Assistant CLI 工具不支持此操作。

摘要

update-default-profile [--profile <value>]

选项

--profile(字符串)

Windows 配置文件将被复制到 Windows 默认用户配置文件的用户的名称。名称应使用以下格式:

"<domain>\<username>"

如果映像生成器未加入 Microsoft Active Directory 域,请为该域输入句点“.”。如果您未指定用户,则系统将使用 AppStream 2.0 模板用户账户。

消息输出

退出代码 打印到标准输出的消息 描述
0 {"status": 0, "message": "Success"} 用户设置已成功复制到默认 Windows 配置文件。
1 {"status": 1, "message": "Administrator privileges are required to perform this operation"} 必须有管理员权限才能完成操作。
1 {"status": 1, "message": "Unable to copy file or folder: <path>. <reason>"} 无法复制用户设置,因为文件或文件夹不可用。
1 {"status": 1, "message": "Cannot copy a domain user when not joined to a domain""} 指定了 Microsoft Active Directory 域用户,但映像生成器未加入 Active Directory 域。
255 {"status": 255, "message": <error message>} 出现意外错误。请重试该请求。如果错误仍然存在,请联系 AWS Support 寻求帮助。有关更多信息,请参阅 AWS Support 中心

reset-user-profile 操作

删除指定用户的 Windows 用户配置文件。

注意

Linux Image Assistant CLI 工具不支持此操作。

摘要

reset-user-profile [--profile <value>]

选项

--profile(字符串)

Windows 配置文件将被删除的 Windows 用户的名称。名称应使用以下格式:

"<domain>\<username>"

如果映像生成器未加入 Microsoft Active Directory 域,请为该域输入句点“.”。

消息输出

退出代码 打印到标准输出的消息 描述
0 {"status": 0, "message": "Success"} 已成功删除指定的用户设置。
1 {"status": 1, "message": "Administrator privileges are required to perform this operation"} 必须有管理员权限才能完成操作。
1 {"status": 1, "message": "Unable to copy file or folder: <path>. <reason>"} 无法重置用户设置,因为文件或文件夹不可用。
1 {"status": 1, "message": "Cannot copy a domain user when not joined to a domain""} 指定了 Microsoft Active Directory 域用户,但映像生成器未加入 Active Directory 域。
255 {"status": 255, "message": <error message>} 出现意外错误。请重试该请求。如果错误仍然存在,请联系 AWS Support 寻求帮助。有关更多信息,请参阅 AWS Support 中心

create-image 操作

启动映像创建工作流程,生成可用于 AppStream 2.0 实例集的 AppStream 2.0 映像。

摘要

create-image --name <value> [--description <value>] [--display-name <value>] [--enable-dynamic-app-catalog] | [--no-enable-dynamic-app-catalog] [--use-latest-agent-version] | [--no-use-latest-agent-version] [--tags <value>] [--dry-run]

选项

--name(字符串)

AppStream 2.0 映像的名称。名称在 Amazon Web Services 账户和 AWS 区域中必须唯一。最大长度为 100 个字符。允许使用的字符包括:

a-z、A-Z、0-9、下划线 (-)、连字符 (-) 和句点 (.)

映像名称不能以以下任何前缀开头:'aws'、'appstream' 和 'amazon'。这些前缀是为 AWS 预留的。

--description(字符串)

要为映像显示的描述。最大长度为 256 个字符。

--display-name(字符串)

要为映像显示的名称。最大长度为 256 个字符。

--enable-dynamic-app-catalog | --no-enable-dynamic-app-catalog

启用或禁用对 AppStream 2.0 动态应用程序框架的支持。如果您未指定任一参数,则系统不会启用对动态应用程序框架的支持。

动态应用程序框架在 AppStream 2.0 流实例中提供了可用于构建动态应用程序提供程序的操作。动态应用程序提供程序可以使用这些操作修改您的用户可以实时访问的应用程序目录。有关更多信息,请参阅使用 AppStream 2.0 动态应用程序框架构建动态应用程序提供程序

--use-latest-agent-version | --no-use-latest-agent-version

指定是将映像固定到当前安装的 AppStream 2.0 代理版本,还是始终使用最新的代理版本。如果您未指定任一参数,则映像将固定到当前安装的 AppStream 2.0 代理版本。有关更多信息,请参阅管理 AppStream 2.0 代理版本

--tags(字符串)

要与映像关联的标签。标签是键值对。采用以下格式:

--tags "mykey" "myval" "mykey2" "myval2"

有关标签的更多信息,请参阅 为 Amazon AppStream 2.0 资源添加标签

--dry-run(字符串)

在不创建映像的情况下执行验证。在创建映像之前,请使用此命令确定映像是否存在任何问题。

消息输出

退出代码 打印到标准输出的消息 描述
0 {"status": 0, "message": "Success"} 创建映像的工作流已成功启动。
1 {"status": 1, "message": "Administrator privileges are required to perform this operation"} 必须有管理员权限才能完成操作。
1 {"status": 1, "message": "An image with the given name already exists"} Amazon Web Services 账户中已存在具有指定名称的映像。
1 {"status": 1, "message": "Invalid value (tags)"} 指定的标签无效。
255 {"status": 255, "message": <error message>} 出现意外错误。请重试该请求。如果错误仍然存在,请联系 AWS Support 寻求帮助。有关更多信息,请参阅 AWS Support 中心