使用 AppStream 2.0 動態應用程式架構建置動態應用程式提供者 - Amazon AppStream 2.0

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 AppStream 2.0 動態應用程式架構建置動態應用程式提供者

AppStream 2.0 動態應用程式架構可在 AppStream 2.0 串流執行個體內提供 API 操作,讓您用來建置動態應用程式提供者。動態應用程式提供者可透過提供的 API 操作,來修改使用者可以即時存取的應用程式目錄。由動態應用程式提供者管理的應用程式可位於映像中,也可以在執行個體以外 (例如來自 Windows 檔案共享或應用程式虛擬化技術)。

注意

此功能需要使用已聯結 Microsoft Active Directory 網域的 AppStream 2.0Always-On 或 On-Demand 機群。如需更多詳細資訊,請參閱 使用活動目錄 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 個字元。

應用程式

要套用請求的應用程式清單。

類型:字串

必要:是

Application 物件

描述顯示和啟動應用程式所需的應用程式中繼資料。應用程式識別符必須是唯一的,而且不能與透過 API 操作或映像指定的其他應用程式衝突。

id

要指定的應用程式識別符。這個值會與 AppStream 2.0 應用程式報告中的 application_name 值對應,並於使用者啟動應用程式時提供。當您啟用用量報告時,每天只要有使用者在串流工作階段期間啟動至少一個應用程式,AppStream 2.0 就會將應用程式報告匯出到 Amazon S3 儲存貯體。如需有關應用程式報告的詳細資訊,請參閱應用程式報告欄位

類型:字串

必要:是

長度限制:長度下限 1 個字元,長度上限 512 個字元。

displayName

要指定的應用程式顯示名稱。使用者會在應用程式目錄中看到此名稱。

類型:字串

必要:是

長度限制:長度下限 1 個字元,長度上限 512 個字元。

launchPath

要啟動之應用程式執行檔的 Windows 檔案系統路徑。

類型:字串

必要:是

長度限制:長度下限 1 個字元,長度上限 32,767 個字元。

iconData

要顯示在應用程式目錄中的 base-64 編碼映像。此影像必須為下列其中一個格式:.png、.jpeg 或是 .jpg。

類型:字串

必要:是

長度限制:長度下限 1 個字元,長度上限 1,000,000 個字元。

launchParams

用來啟動應用程式的參數。

類型:字串

必要:否

長度限制:長度上限 32,000 個字元。

workingDirectory

要在其中啟動應用程式之工作目錄的 Windows 檔案系統路徑。

類型:字串

必要:否

長度限制:長度上限 32,767 個字元。

RemoveApplicationsRequest 操作

使用 AddApplicationsRequest 操作移除之前新增的應用程式。即可從使用者的應用程式目錄中移除應用程式。在移除應用程式後,即無法啟動這些應用程式。如果應用程式仍在執行,AppStream 2.0 不會將其關閉。您無法移除直接在 AppStream 2.0 映像中指定的應用程式。

請求語法

string userSid;

list<Application> applications;

請求參數

userSid

對其套用請求的使用者 SID。

類型:字串

必要:是

長度限制:長度下限 1 個字元,長度上限 208 個字元。

應用程式

要套用請求的應用程式清單。

類型:字串

必要:是

ClearApplicationsRequest 操作

使用 AddApplicationsRequest 操作,移除之前新增至應用程式目錄的所有應用程式。在移除應用程式後,即無法啟動這些應用程式。在使用 ClearApplicationsRequest 操作時,如果應用程式仍在執行,AppStream 2.0 不會將其關閉。您無法移除直接在 AppStream 2.0 映像中指定的應用程式。

請求語法

string userSid;

請求參數

userSid

對其套用請求的使用者 SID。

類型:字串

必要:是

長度限制:長度下限 1 個字元,長度上限 208 個字元。