使用 AppStream 2.0 动态应用程序框架构建动态应用程序提供程序 - 亚马逊 AppStream 2.0

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

使用 AppStream 2.0 动态应用程序框架构建动态应用程序提供程序

AppStream 2.0 动态应用程序框架在 AppStream 2.0 流实例中提供了可用于构建动态应用程序提供程序的 API 操作。动态应用程序提供程序可以使用提供的 API 操作修改您的用户可以实时访问的应用程序目录。动态应用程序提供程序所管理的应用程序可以位于映像中,也可以位于实例外,例如来自 Windows 文件共享或应用程序虚拟化技术。

注意

此特征需要已加入 Microsoft Active Directory 域的 AppStream 2.0 始终在线或按需实例集。有关更多信息,请参阅在 AppStream 2.0 中使用活动目录

关于动态应用程序框架

动态应用程序框架使用 Apache Thrift 软件框架处理流程间消息收发。它通过 Windows 中的命名管道进行公开。使用 Thrift 框架,您可以使用所选的软件开发语言构建动态应用程序提供程序。动态应用程序框架包含三个 API 操作:AddApplicationsRemoveApplicationsClearApplications

动态应用程序框架 Thrift 定义和命名管道名称

通过 Thrift,您可以使用 AppStream 2.0 提供的简单定义文件来编译 RPC 客户端。RPC 客户端允许您与流实例上运行的 AppStream 2.0 代理软件进行通信。有关如何编译适用于您的语言的 RPC 客户端的信息,请参阅 Apache Thrift 文档。在编译适用于您所选语言的 Thrift 库后,使用命名管道传输构建 Thrift 客户端。使用 D56C0258-2173-48D5-B0E6-1EC85AC67893 作为管道名称。

AppStreamServer.thrift

namespace netstd AppStream.ApplicationCatalogService.Model const string ServiceEndpoint = "D56C0258-2173-48D5-B0E6-1EC85AC67893"; struct AddApplicationsRequest { 1: required string userSid; 2: required list<Application> applications; } struct AddApplicationsResponse { } struct RemoveApplicationsRequest { 1: required string userSid; 2: required list<string> applicationIds; } struct RemoveApplicationsResponse { } struct ClearApplicationsRequest { 1: required string userSid; } struct ClearApplicationsResponse { } struct Application { 1: required string id; 2: required string displayName; 3: required string launchPath; 4: required string iconData; 5: string launchParams; 6: string workingDirectory; } exception AppStreamClientException { 1: string errorMessage, 2: ErrorCode errorCode } exception AppStreamServerException { 1: string errorMessage, 2: ErrorCode errorCode } enum ErrorCode { } service ApplicationCatalogService { AddApplicationsResponse AddApplications(1:AddApplicationsRequest request) throws (1: AppStreamClientException ce, 2: AppStreamServerException se), RemoveApplicationsResponse RemoveApplications(1:RemoveApplicationsRequest request) throws (1: AppStreamClientException ce, 2: AppStreamServerException se), ClearApplicationsResponse ClearApplications(1:ClearApplicationsRequest request) throws (1: AppStreamClientException ce, 2: AppStreamServerException se), }

用于管理 AppStream 2.0 的应用程序授权的 API 操作

您可以使用以下 API 操作来管理 AppStream 2.0 的应用程序授权。

AddApplicationsRequest 操作

将应用程序添加到 AppStream 2.0 用户的应用程序目录中。AppStream 2.0 显示的应用程序目录包含您使用此 API 操作添加的应用程序和您在映像中添加的应用程序。在您使用其中一种或两种方法添加应用程序后,您的用户可以启动应用程序。

请求语法

string userSid;

list<Application> applications;

请求参数

userSid

请求适用于的用户的 SID。

类型:字符串

必需:是

长度约束:最小长度为 1 个字符,最大长度为 208 个字符。

applications

请求适用于的应用程序的列表。

类型:字符串

必需:是

Application 对象

描述显示和启动应用程序所需的应用程序元数据。应用程序标识符必须是唯一的,并且不与通过 API 操作或映像指定的其他应用程序冲突。

id

指定的应用程序的标识符。此值与 AppStream 2.0 应用程序报告中的 application_name 值相对应,在用户启动应用程序时提供。在您启用使用情况报告时,对于用户在其流式传输会话中启动至少一个应用程序的每个日期,AppStream 2.0 会将应用程序报告导出到您的 Amazon S3 存储桶。有关应用程序报告的更多信息,请参阅应用程序报告字段

类型:字符串

必需:是

长度约束:最小长度为 1 个字符,最大长度为 512 个字符。

displayName

指定的应用程序的显示名称。此名称显示给应用程序目录中的用户。

类型:字符串

必需:是

长度约束:最小长度为 1 个字符,最大长度为 512 个字符。

launchPath

要启动的应用程序的可执行文件的 Windows 文件系统路径。

类型:字符串

必需:是

长度约束:最小长度为 1 个字符,最大长度为 32767 个字符。

iconData

要在应用程序目录中显示的 base-64 编码的图像。此图像必须为以下格式之一:.png、.jpeg 或 .jpg。

类型:字符串

必需:是

长度约束:最小长度为 1 个字符,最大长度为 1000000 个字符。

launchParams

用于启动应用程序的参数。

类型:字符串

必需:否

长度约束:最大长度为 32000 个字符。

workingDirectory

应在其中启动应用程序的工作目录的 Windows 文件系统路径。

类型:字符串

必需:否

长度约束:最大长度为 32767 个字符。

RemoveApplicationsRequest 操作

删除使用 AddApplicationsRequest 操作添加的应用程序。将从用户的应用程序目录中删除应用程序。在删除应用程序后,无法启动它们。如果应用程序仍在运行,AppStream 2.0 不会将其关闭。无法删除直接在 AppStream 2.0 映像中指定的应用程序。

请求语法

string userSid;

list<Application> applications;

请求参数

userSid

请求适用于的用户的 SID。

类型:字符串

必需:是

长度约束:最小长度为 1 个字符,最大长度为 208 个字符。

applications

请求适用于的应用程序的列表。

类型:字符串

必需:是

ClearApplicationsRequest 操作

删除使用 AddApplicationsRequest 操作添加到应用程序目录中的所有应用程序。在删除应用程序后,无法启动它们。如果在使用 ClearApplicationsRequest 操作时应用程序正在运行,AppStream 2.0 不会将其关闭。无法删除直接在 AppStream 2.0 映像中指定的应用程序。

请求语法

string userSid;

请求参数

userSid

请求适用于的用户的 SID。

类型:字符串

必需:是

长度约束:最小长度为 1 个字符,最大长度为 208 个字符。