

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

# 應用程式區塊
<a name="app-blocks"></a>

應用程式區塊代表存放在您帳戶內 Amazon S3 儲存貯體中的虛擬硬碟 (VHD)，其中包含啟動使用者將使用之應用程式所需的應用程式檔案和二進位檔。應用程式區塊還包括安裝指令碼，會通知作業系統如何處理 VHD 檔案。

應用程式區塊支援兩種不同類型的封裝：
+ 自訂：選擇此選項可手動建立您的應用程式套件 (VHD)。如需詳細資訊，請參閱[自訂應用程式區塊](custom-app-blocks.md)。
+ WorkSpaces 應用程式 - 選擇此建議選項，使用應用程式區塊建置器建立應用程式套件。如需詳細資訊，請參閱[WorkSpaces 應用程式應用程式區塊](appstream-app-blocks.md)。

**Topics**
+ [自訂應用程式區塊](custom-app-blocks.md)
+ [WorkSpaces 應用程式應用程式區塊](appstream-app-blocks.md)
+ [不支援的應用程式](app-blocks-unsupported.md)

# 自訂應用程式區塊
<a name="custom-app-blocks"></a>

彈性機群串流執行個體會利用安裝在您帳戶中 Amazon S3 儲存貯體內的虛擬硬碟 (VHD) 檔案上的應用程式。使用自訂封裝的應用程式區塊可讓您靈活地建立自己的 VHD 檔案，並將其上傳到您帳戶內的 Amazon S3 儲存貯體。

**Topics**
+ [建立 VHD](create-vhd.md)
+ [在 Amazon WorkSpaces 應用程式中建立 VHD 的設定指令碼](create-setup-script.md)
+ [建立自訂應用程式區塊](create-app-block.md)
+ [更新應用程式區塊、VHD 和安裝指令碼](update-app-block.md)

# 建立 VHD
<a name="create-vhd"></a>

VHD 是單一檔案，掛載至作業系統時會視為硬碟。VHD 可以掛載為磁碟機代號、資料夾路徑，或兩者。掛載 VHD 後，您可以將其作為任何其他硬碟來處理，包括安裝應用程式或將使用者需要的檔案複製到其中。

若要建立應用程式區塊，您需要建立 VHD、在其中安裝您的應用程式，然後將它分離。分離後，您可以在另一部 PC、EC2 執行個體或 WorkSpaces 應用程式映像建置器上測試 VHD，以驗證應用程式是否如預期般運作。完成後，上傳到您帳戶中的 Amazon S3 儲存貯體，並建立應用程式區塊。

**注意**  
此頁面說明使用 VHD 交付您的應用程式；不過，WorkSpaces 應用程式串流執行個體將從 Amazon S3 下載任何物件。您存放在 Amazon S3 中的物件也可以是 zip 檔案、應用程式安裝程式，或應用程式可執行檔本身。您可以在使用者啟動其應用程式之前，使用安裝指令碼在串流執行個體上正確設定它。  
WorkSpaces 應用程式串流執行個體會在安裝指令碼執行之前等待最多 120 秒，讓 VHD 完成下載。如果 VHD 未在此期間內完成下載，下載將停止，且安裝指令碼將不會執行。  
我們建議的 VHD 大小上限為 1.5 GB。您可以利用壓縮來縮減 VHD 的大小。您必須先使用安裝指令碼將檔案解壓縮才能進行掛載，因為檔案必須從 Amazon S3 完整下載後才能進行掛載，且應用程式才能啟動。較大的 VHD 會增加應用程式啟動和串流工作階段開始所需的時間。

**建立適用 Microsoft Windows 的 VHD**

1. 從 Windows PC 或 Windows Amazon Elastic Compute Cloud (Amazon EC2) 執行個體，開啟具有管理權限的命令提示字元。

1. 輸入下列命令以啟動 Microsoft **diskpart** 公用程式：

   **diskpart**

1. 輸入下列命令以建立未格式化且未初始化的 VHD 檔案，其中 *<maximum file size>* 是 VHD 檔案的大小，以 MB 為單位：

   **create vdisk file=C:\$1path\$1to\$1new\$1file.vhdx maximum=*<maximum file size>* type=expandable **

1. 輸入下列命令以選取新建立的 VHD：

   **select vdisk file=C:\$1path\$1to\$1new\$1file.vhdx**

1. 輸入下列命令以連接新建立的 VHD：

   **attach vdisk**

1. 輸入下列命令以初始化新建立的 VHD：

   **convert mbr**

1. 輸入以下命令以建立橫跨整個 VHD 的主要分割區：

   **create partition primary**

1. 輸入下列命令以格式化新建立的分割區：

   **format fs=ntfs quick**

1. 您可以將新建立的 VHD 掛載到未使用的磁碟機代號、根磁碟區上的資料夾路徑，或兩者。

   若要掛載磁碟機代號，請輸入：**assign letter=*<unused drive letter>***

   若要掛載資料夾，請輸入：**assign mount=*C:\$1path\$1to\$1empty\$1folder\$1to\$1mount\$1***
**注意**  
若要掛載至資料夾路徑，該資料夾必須已存在且必須是空的。

1. 您現在可以將應用程式安裝到使用步驟 9 中所選擇磁碟機代號或資料夾掛載路徑的 VHD。

將應用程式安裝到 VHD 之後，您需要先將其分離，才能安全地將其上傳到 Amazon S3 儲存貯體。

**分離適用 Microsoft Windows 的 VHD**

1. 輸入下列命令以啟動 Microsoft diskpart 公用程式：

   **diskpart**

1. 輸入下列命令以選取 VHD：

   **select vdisk file=*C:\$1path\$1to\$1new\$1file.vhdx***

1. 輸入下列命令以分離 VHD：

   **detach vdisk**

1. VHD 現在已分離，並且可以在另一個 Windows PC、Amazon EC2 執行個體或 WorkSpaces 應用程式映像建置器上進行測試。

**建立適用 Linux 的 VHD**

1. 開啟終端機：
   + 對於 Amazon Linux 2：使用 EC2 執行個體、WorkSpaces 應用程式映像建置器或採用 Amazon Linux 2 技術的 WorkSpaces 
   + 對於 Ubuntu Pro 24.04 LTS：使用 EC2 執行個體或採用 Ubuntu Pro 技術的 WorkSpaces 

1. 建立未格式化且未初始化的 VHD 檔案：

   **dd if=/dev/zero of=*<name of file>* bs=*<size of VHD>* count=1**

1. 輸入下列命令以將檔案系統新增至建立的 VHD：

   **sudo mkfs -t ext4 *<name of file>***
**注意**  
您可能會看見一則訊息，指出檔案不是區塊特殊裝置。您可以直接選擇繼續進行。

1. 輸入下列命令以建立用於掛載點的空資料夾：

   **sudo mkdir */path/to/mount/point***

1. 執行下列命令以將新建立的 VHD 掛載至檔案系統路徑：

   **sudo mount -t auto -o loop *<name of file>* */path/to/mount/point***

1. 您現在可以將應用程式安裝到使用步驟 4 中所選擇資料夾掛載路徑的 VHD。
**注意**  
在 VHD 上所建立檔案和資料夾的預設許可，能夠防止非管理員的使用者啟動應用程式或讀取檔案。驗證許可並視需要進行變更。

將應用程式安裝到 VHD 之後，您需要先將其分離，才能安全地將其上傳到 Amazon S3 儲存貯體。

**分離適用 Linux 的 VHD**

1. 開啟終端機工作階段，然後輸入下列命令：

   **sudo umount */path/to/mount/point***

1. VHD 現已分離，並且可以在另一個 Amazon Linux 2/Ubuntu Pro 24.04 LTS Amazon EC2 執行個體、Amazon Linux 2 WorkSpaces 應用程式映像建置器或 Amazon Linux 2/Ubuntu WorkSpaces Personal 上進行測試。

# 在 Amazon WorkSpaces 應用程式中建立 VHD 的設定指令碼
<a name="create-setup-script"></a>

WorkSpaces 應用程式會使用您提供的設定指令碼，在應用程式啟動之前掛載 VHD。您也可以使用安裝指令碼來完成其他必要任務，以便讓應用程式正常運作。例如，您可以從安裝指令碼設定登錄機碼、註冊 DLL、管理必要條件，或修改使用者設定檔。WorkSpaces 應用程式提供指令碼範例，您可以用來掛載 VHD。您需要根據您的 VHD 和應用程式所需修改這些指令碼。

**注意**  
使用 WorkSpaces 應用程式封裝的應用程式區塊不需要設定指令碼。不過，您可以提供選用的安裝後指令碼，以自訂應用程式安裝。

使用下列連結來下載範例指令碼：
+ [Ubuntu Pro 24.04 LTS 和 Amazon Linux 2 bash 指令碼](samples/Linux-mount-vhd-script2.zip)
+ [Microsoft Windows Powershell 指令碼](samples/Windows-mount-vhd-script3.zip)
**注意**  
WorkSpaces 應用程式和 Microsoft Windows 作業系統會保留磁碟機代號 A 到 E。請勿將 VHDs或網路共用掛載至這些磁碟機代號。

WorkSpaces 應用程式會將安裝指令碼和 VHD 下載到機群串流執行個體上的目錄，然後執行安裝指令碼。安裝指令碼會以完整管理員權限在作業系統上執行。設定指令碼會在 Microsoft Windows 上`SYSTEM`以使用者身分在 Amazon Linux 2 或 Ubuntu Pro 24.04 LTS `root`上執行。

VHD 和安裝指令碼的檔案系統位置：
+ Ubuntu Pro 24.04 LTS：

  `/opt/appstream/AppBlocks/appblock-name/`  
**`appblock-name` **  
VHD 和安裝程式碼對應的應用程式區塊名稱。
+ Amazon Linux 2：

  `/opt/appstream/AppBlocks/appblock-name/`  
**`appblock-name` **  
VHD 和安裝程式碼對應的應用程式區塊名稱。
+ Microsoft Windows：

  `C:\AppStream\AppBlocks\appblock-name\`  
**`appblock-name` **  
VHD 和安裝程式碼對應的應用程式區塊名稱。

WorkSpaces 應用程式會在物件上維護檔案名稱。例如，如果您的應用程式區塊命名為 `MyApps`，且 VHD 命名為 `apps.vhd` 和安裝指令碼命名為 `mount-apps.ps1`，則 Windows 串流執行個體上的完整路徑為：
+ VHD

  `C:\AppStream\AppBlocks\MyApps\apps.vhd`
+ 安裝指令碼

  `C:\AppStream\AppBlocks\MyApps\mount-apps.ps1`

WorkSpaces 應用程式在機群串流執行個體上執行時，會從設定指令碼擷取標準錯誤和標準輸出，並將輸出上傳到您帳戶中的 Amazon S3 儲存貯體。您可以使用這些日誌來識別和解決安裝指令碼可能發生的問題。儲存貯體使用特定格式命名，如下所示：

```
appstream-logs-region-code-account-id-without-hyphens-random-identifier
```

**`region-code` **  
這是在其中建立彈性機群 AWS 的區域代碼。

**`account-id-without-hyphens` **  
 AWS 您的帳戶識別符。隨機 ID 可確保與該區域中的其他儲存貯體不發生衝突。儲存貯體名稱的第一部分 appstream-logs，在帳戶或區域之間不會變更。

例如，如果您在美國西部 （奧勒岡） 區域 (us-west-2) 於帳號 123456789012 建立彈性機群，WorkSpaces 應用程式會在您該區域中的帳戶內建立 Amazon S3 儲存貯體，並顯示名稱。只有具備足夠許可的管理員可以刪除這個儲存貯體。

```
appstream-logs-us-west-2-1234567890123-abcdefg
```

在您的帳戶中，日誌檔存放在 S3 儲存貯體中的資料夾路徑使用以下結構：

```
bucket-name/fleet-name/instance-id/appblock-name/
```

**`bucket-name` **  
存放安裝指令碼日誌的 Amazon S3 儲存貯體名稱。名稱格式如本節前文所述。

**`Instance-id` **  
安裝命令碼執行所在的串流執行個體的唯一識別符

**`appblock-name` **  
安裝程式碼對應的應用程式區塊名稱。

以下範例資料夾結構適用於從 `test-fleet` 啟動的串流工作階段。工作階段來自 AWS 帳戶 ID 為 123456789012，而應用程式區塊名稱在美國西部 （奧勒岡） 區域 (us-west-2) 為 testappblock：

`appstream-logs-us-west-2-1234567890123-abcdefg/test-fleet/i-084427ab4a1cff7f5/testappblock/`

此範例資料夾結構包含一個用於標準輸出的日誌檔，以及一個用於標準錯誤的日誌檔。

**Topics**
+ [Amazon WorkSpaces 應用程式中的應用程式區塊設定指令碼執行](script-execution.md)

# Amazon WorkSpaces 應用程式中的應用程式區塊設定指令碼執行
<a name="script-execution"></a>

下列圖表指出安裝指令碼在程序中執行的位置。執行順序取決於，與彈性機群相關聯的堆疊上是否啟用了「應用程式設定持續性」。

**注意**  
WorkSpaces 應用程式使用您的 VPC 詳細資訊，從 Amazon S3 儲存貯體下載 VHD 和設定指令碼。您的 VPC 必須提供 Amazon S3 儲存貯體的存取權。如需詳細資訊，請參閱[將 Amazon S3 VPC 端點用於 WorkSpaces 應用程式功能](managing-network-vpce-iam-policy.md)。

應用程式設定持續性已啟用：

![\[應用程式設定持續性已啟用。\]](http://docs.aws.amazon.com/zh_tw/appstream2/latest/developerguide/images/app-settings-enabled.png)


應用程式設定持續性已停用：

![\[應用程式設定持續性已停用。\]](http://docs.aws.amazon.com/zh_tw/appstream2/latest/developerguide/images/app-settings-disabled.png)


# 建立自訂應用程式區塊
<a name="create-app-block"></a>

建立 VHD 和設定指令碼並上傳至 中的 S3 儲存貯體後，您可以使用 WorkSpaces 應用程式主控台來建立應用程式區塊資源 AWS 帳戶。若要深入了解如何在 Amazon S3 儲存貯體中存放 VHD 和安裝指令碼，請參閱 [將應用程式圖示、安裝指令碼、工作階段指令碼和 VHD 儲存在 S3 儲存貯體中](store-s3-bucket.md)。

**注意**  
您必須擁有 IAM 許可才能對 Amazon S3 儲存貯體中的 VHD 和安裝指令碼物件執行 `S3:GetObject` 動作，以建立應用程式區塊資源。

**建立應用程式區塊資源**

1. 在 https：//[https://console.aws.amazon.com/appstream2](https://console.aws.amazon.com/appstream2) 開啟 WorkSpaces 應用程式主控台。

1. 在左側導覽選單中，選擇**應用程式**、**應用程式區塊**和**建立應用程式區塊**。

1. 針對應用程式區塊封裝，選取**自訂**。

1. 針對**應用程式區塊詳細資訊**，輸入應用程式區塊的唯一名稱識別符。或者，您也可以指定以下内容：
   + **顯示名稱**：易記的應用程式區塊名稱。
   + **說明**：應用程式區塊的說明。

1. 針對**指令碼設定**下的 **S3 中的虛擬硬碟物件**，輸入代表 VHD 物件的 S3 URI，或選擇**瀏覽 S3**，以導覽至您的 S3 儲存貯體並尋找 VHD 物件。

1. 針對**指令碼設定**下的 **S3 中的安裝指令碼物件**，輸入代表安裝指令碼物件的 S3 URI，或選擇**瀏覽 S3**，以導覽至您的 S3 儲存貯體並尋找安裝指令碼物件。

1. 針對**指令碼設定**下的**安裝指令碼可執行檔**，輸入您的安裝指令碼所需的可執行檔。
**注意**  
如果您的安裝指令碼可以直接執行，則輸入安裝指令碼的檔案名稱。如果您的安裝指令碼需要依賴另一個可執行檔 (例如 Microsoft PowerShell) 來執行，則輸入該可執行檔的路徑。  
Microsoft Windows 上 Microsoft PowerShell 的路徑：  
`C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe`

1. 或者，您可以選擇針對**指令碼設定**下的**安裝指令碼可執行檔引數**，輸入須提供給安裝指令碼可執行檔以執行安裝指令碼的引數。
**注意**  
如果您使用的是 Microsoft PowerShell 指令碼，則必須指定「-File」參數與您的安裝指令碼名稱作為可執行檔引數。此外，請確定執行政策允許您的指令碼執行。若要深入了解，請參閱 [about\$1Execution\$1Policies](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.2) 和[什麼是 PowerShell？](https://docs.microsoft.com/en-us/powershell/scripting/overview?view=powershell-7.2)。

1. 針對**指令碼設定**下的**執行持續時間 (以秒為單位)**，輸入安裝指令碼的逾時持續時間。
**注意**  
以秒為單位的執行持續時間是 WorkSpaces 應用程式等待安裝指令碼執行的時間，然後再繼續。如果您的安裝指令碼未在此期間內完成，則會對您的使用者顯示錯誤，且應用程式會嘗試啟動。安裝指令碼會在執行持續時間過後終止。

1. (選用) 針對**標籤**，為應用程式區塊資源建立標籤

1. 檢閱您輸入的資訊，然後選擇**建立**。

1. 如果您的應用程式區塊成功建立，您會在主控台頂端看到成功訊息。如果發生錯誤，您會看到描述性的錯誤訊息，並且需要嘗試再次建立應用程式區塊。

# 更新應用程式區塊、VHD 和安裝指令碼
<a name="update-app-block"></a>

應用程式區塊不可變，而且一旦建立就不允許您進行變更。如果您需要對 VHD 或安裝指令碼進行回溯相容的更新，建議您將檔案的新版本上傳到 Amazon S3 儲存貯體，覆寫目前的版本。新的彈性機群串流工作階段將會下載並使用最新版的物件。

如果您需要對 VHD 或安裝指令碼進行回溯不相容的更新，建議您將它們作為新物件上傳到 Amazon S3 儲存貯體，並建立新的應用程式區塊和應用程式資源。然後，您可以在變更時段或其他中斷的過程中，管理對使用者的部署。

# WorkSpaces 應用程式應用程式區塊
<a name="appstream-app-blocks"></a>

彈性機群串流執行個體會利用安裝在您帳戶中 Amazon S3 儲存貯體內的虛擬硬碟 (VHD) 檔案上的應用程式。若是使用自訂封裝的應用程式區塊，您可以靈活建立自己的 VHD 檔案，並將其上傳到您帳戶內的 Amazon S3 儲存貯體。或者，對於使用 WorkSpaces 應用程式封裝的應用程式區塊，您可以利用應用程式區塊建置器來處理應用程式的封裝、建立 VHD 檔案，並將其上傳至 Amazon S3 儲存貯體。

透過使用 WorkSpaces 應用程式封裝的應用程式區塊，您不僅不需要手動步驟來建置 VHD 檔案，也不需要設定指令碼。它透過彈性機群擴展了應用程式相容性，並減少了建立應用程式區塊所需的手動管理步驟。WorkSpaces 應用程式會自動使用 WorkSpaces 應用程式封裝處理應用程式區塊的設定，而不需要任何設定指令碼。不過，您仍然可以提供選用的安裝後指令碼，視需要自訂安裝。

**Topics**
+ [概要](appstream-app-blocks-overview.md)
+ [不支援的應用程式](appstream-app-blocks-unsupported.md)
+ [建立 WorkSpaces 應用程式應用程式區塊](appstream-app-blocks-create.md)
+ [啟用應用程式區塊](appstream-app-blocks-activate.md)
+ [使用現有的應用程式套件建立應用程式區塊](appstream-app-blocks-create-VHD.md)
+ [測試應用程式區塊](appstream-app-blocks-test.md)
+ [在 Amazon WorkSpaces 應用程式中關聯應用程式區塊](appstream-app-blocks-associate.md)
+ [在 Amazon WorkSpaces 應用程式中取消關聯應用程式區塊](appstream-app-blocks-disassociate.md)

# 概要
<a name="appstream-app-blocks-overview"></a>

若要使用 WorkSpaces 應用程式封裝建立應用程式區塊，您需要使用應用程式區塊建置器啟動串流工作階段。工作階段啟動後，您可以下載應用程式安裝程式並啟用錄製選項。從那時起，WorkSpaces 應用程式會使用 Application Redirection 技術記錄應用程式區塊建置器上的檔案系統和登錄檔變更。

應用程式重新導向使用 Windows 篩選器驅動程式架構來攔截和重新導向檔案系統和登錄變更。此重新導向會與所要安裝的應用程式順暢連接。應用程式將繼續與 C: 磁碟機上的原始檔案位置互動。例如，如果「TestApplication」的安裝程式在已設定應用程式重新導向的機器上執行，則預設安裝位置會是 C:\$1Program Files\$1TestApplication。不過，實際上所有檔案和資料夾都會重新導向至掛載的虛擬硬碟 (VHD)，而且會建立從原始檔案位置到實際檔案位置的連結。在機器上，TestApplication 仍會像是安裝在 C:\$1Program Files\$1TestApplication。

所有安裝變更都記錄完成後，VHD 檔案就會上傳到您帳戶中的 Amazon S3 儲存貯體。

當使用者使用彈性機群請求工作階段時，WorkSpaces 應用程式會下載 VHD 檔案、設定應用程式、執行安裝後設定指令碼 （選用），並啟動應用程式串流。

**注意**  
應用程式重新導向技術不會記錄 %USERPROFILE% 下的任何檔案系統變更，但在 %APPDATA% 和 %LOCALAPPDATA% 目錄下建立的新目錄除外。  
應用程式重新導向技術不會記錄目前使用者 HKEY\$1CURRENT\$1USER (HKCU) 下的任何登錄變更。

# 不支援的應用程式
<a name="appstream-app-blocks-unsupported"></a>

在下列情況下安裝或執行應用程式可能會失敗：
+ **在安裝期間進行位置型檢查的應用程式**：如果應用程式的安裝程序會驗證已安裝檔案的實際位置，則可能導致失敗。由於 WorkSpaces 應用程式會將檔案重新導向至應用程式區塊 VHD，因此只會在原始位置維護實際檔案的連結。

如果您不確定應用程式是否屬於這些類別，您可以使用 WorkSpaces 應用程式封裝來建立應用程式區塊。此程序包含在應用程式區塊建置器執行個體上安裝您的應用程式。如果您的應用程式無法安裝到應用程式區塊建置器執行個體上，您可以採取下列動作：
+ 檢查日誌。應用程式區塊建置器執行個體的錯誤日誌檔位於 C:\$1AppStream\$1AppBlocks\$1errorLog。此日誌會記錄所有安裝失敗，包括 RegKeys/檔案操作處理。如果您在 errorLog 中看到下列任何日誌，表示 WorkSpaces 應用程式區塊建置器目前不支援應用程式的封裝：
  + 「無法建立符號連結」
  + 「服務不支援檔案重新命名」

  如果沒有 errorLog 檔案，或是此檔案是空的，請查看您的應用程式安裝日誌，以找出失敗的原因。
+ 回報問題。選取**回報問題**按鈕，此按鈕位於應用程式區塊建置器的應用程式建置器輔助程式上。選取此選項將從您的應用程式區塊建置器執行個體收集所有 WorkSpaces 應用程式日誌，並將其提交至 WorkSpaces 應用程式團隊以取得協助。
+ 使用自訂封裝建立應用程式區塊：如果您無法使用應用程式區塊建置器封裝自己的應用程式，可以嘗試使用自訂封裝方法建立應用程式區塊。如需詳細資訊，請參閱[自訂應用程式區塊](custom-app-blocks.md)。
+ 如需其他協助，請聯絡 AWS Support。如需詳細資訊，請參閱 [AWS 支援 中心](https://console.aws.amazon.com/support/home#/)。

請務必考慮這些潛在限制，並在為您的應用程式使用 WorkSpaces 應用程式封裝時相應地進行規劃。

# 建立 WorkSpaces 應用程式應用程式區塊
<a name="appstream-app-blocks-create"></a>

請依照下列步驟，使用 WorkSpaces 應用程式封裝類型建立應用程式區塊。

## 步驟 1：設定應用程式區塊
<a name="appstream-app-blocks-create-step1"></a>

**設定應用程式區塊**

1. 在 https：//[https://console.aws.amazon.com/appstream2](https://console.aws.amazon.com/appstream2) 開啟 WorkSpaces 應用程式主控台。

1. 在左側導覽選單中，選擇**應用程式管理器**、**應用程式區塊**和**建立應用程式區塊**。

1. 針對應用程式區塊封裝，選取 **WorkSpaces 應用程式**。

1. 針對**應用程式區塊詳細資訊**，輸入應用程式區塊的唯一名稱識別符。或者，您也可以指定以下内容：
   + **名稱**：應用程式區塊的唯一名稱。
   + **顯示名稱** (選用)：易記的應用程式區塊名稱。
   + **說明** (選用)：應用程式區塊的說明。

1. （選用） 具有 WorkSpaces 應用程式封裝的應用程式區塊不需要設定指令碼。您可以選擇性地提供下列**進階選項**作為安裝後步驟：
   + 針對 **S3 中的後置安裝指令碼物件**，輸入代表後置安裝指令碼物件的 Amazon S3 URI，或選擇**瀏覽 S3**，以導覽至您的 Amazon S3 儲存貯體並尋找安裝指令碼物件。
   + 針對**後置安裝指令碼可執行檔**，輸入您的後置安裝指令碼所需的可執行檔。
**注意**  
如果您的安裝指令碼可以直接執行，則輸入安裝指令碼的檔案名稱。如果您的安裝指令碼需要依賴另一個可執行檔 (例如 Microsoft PowerShell) 來執行，則輸入該可執行檔的路徑。  
Microsoft Windows 上 Microsoft PowerShell 的路徑：  
`C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe`  
或者，您可以選擇針對**指令碼設定**下的**安裝指令碼可執行檔引數**，輸入須提供給安裝指令碼可執行檔以執行安裝指令碼的引數。
**注意**  
如果您使用的是 Microsoft PowerShell 指令碼，則必須指定「-File」參數與您的安裝指令碼名稱作為可執行檔引數。此外，請確定執行政策允許您的指令碼執行。若要深入了解，請參閱 [about\$1Execution\$1Policies](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.2) 和[什麼是 PowerShell？](https://docs.microsoft.com/en-us/powershell/scripting/overview?view=powershell-7.2)。  
針對**指令碼設定**下的**執行持續時間 (以秒為單位)**，輸入安裝指令碼的逾時持續時間。
**注意**  
以秒為單位的執行持續時間是 WorkSpaces 應用程式等待安裝指令碼執行的時間，然後再繼續。如果您的安裝指令碼未在此期間內完成，則會對您的使用者顯示錯誤，且應用程式會嘗試啟動。安裝指令碼會在執行持續時間過後終止。

1. 在**匯入設定**下，選擇**建立新的應用程式區塊應用程式檔案**。針對**匯入設定**下的 **S3 位置**，輸入代表儲存貯體的 Amazon S3 URI，或選擇**瀏覽 S3**，以導覽至您的 Amazon S3 儲存貯體並選取適當的儲存貯體。Amazon S3 儲存貯體的清單涵蓋全域，會列出所有區域的所有儲存貯體。請務必在您要建立應用程式區塊的區域中選取儲存貯體。如需設定儲存貯體許可的詳細資訊，請參閱[將應用程式圖示、安裝指令碼、工作階段指令碼和 VHD 儲存在 S3 儲存貯體中](store-s3-bucket.md)。

1. 選取應用程式區塊建置器。只有未與其他應用程式區塊相關聯的應用程式區塊建置器可供選擇。如果清單是空的，請建立新的應用程式區塊建置器，或將現有建置器取消關聯以便使用。應用程式區塊建置器是可重複使用的資源，可用來建立您的應用程式套件。
**注意**  
如果您未在此處選取應用程式區塊建置器，您仍可建立**非作用中**狀態的應用程式區塊，並且稍後再啟用您的應用程式區塊。如需詳細資訊，請參閱[啟用應用程式區塊](appstream-app-blocks-activate.md)。

1. (選用) 針對**標籤**，為應用程式區塊資源建立標籤。

1. 選擇**下一步**。

1. 檢閱您輸入的資訊，然後選擇下列其中一個選項：
   + 如果您未在步驟 7 中選取應用程式區塊建置器，請選擇**建立應用程式區塊**。
   +  如果您已在步驟 7 中選擇應用程式區塊建置器，請選擇**啟動應用程式區塊建置器**。然後繼續進行步驟 2，使用應用程式區塊建置器串流工作階段建立您的應用程式套件。

此時，您的應用程式區塊資源已建立，但是處於**非作用中**狀態，且無法用於彈性機群。

## 步驟 2：建立應用程式套件
<a name="appstream-app-blocks-create-step2"></a>

使用應用程式區塊建置器串流執行個體封裝您的應用程式，並啟用您的應用程式區塊。使用應用程式區塊建置器建立的應用程式區塊將具有 WorkSpaces 應用程式封裝，而應用程式套件將上傳到 中的 Amazon S3 儲存貯體 AWS 帳戶。

**建立應用程式套件**

1. 串流工作階段開啟後，應用程式建置器輔助程式會自動啟動。若未啟動，請使用桌面圖示手動啟動它。

1. 初始畫面提供了應用程式封裝程序的指示。

1. 使用下列其中一個選項，將您的應用程式安裝程式移至應用程式區塊建置器串流工作階段中：
   + 從 Web 下載應用程式安裝程式。
   + 使用您的串流工作階段檔案介面。
   + 使用機器角色從其他 AWS 服務下載應用程式安裝程式。

1. 取得所有必要的應用程式安裝程式之後，請停止執行個體上執行的所有其他應用程式，然後選擇**開始錄製**。應用程式區塊建置器會開始記錄系統變更，且畫面上會顯示**錄製進行中**。

1. 開始逐一安裝您的應用程式。

1. 應用程式安裝完成後，選擇**停止錄製**，系統將停止記錄變更。如果您要對應用程式套件進行其他變更，例如新增更多應用程式或移除已安裝的應用程式，請選擇**開始錄製**，並確定系統處於**錄製進行中**模式。
**注意**  
如果您的應用程式安裝失敗，請選擇**報告問題**以從執行個體收集 WorkSpaces 應用程式相關日誌，並向 WorkSpaces 應用程式團隊報告問題。完成後，結束您的應用程式區塊建置器串流工作階段。您可以嘗試重新啟動程序，使用新的應用程式區塊建置器執行個體建立應用程式區塊。如果問題仍存在，請嘗試使用自訂封裝建立您的應用程式區塊。

1. 所有應用程式均安裝完成後，選擇**停止錄製**。您可以使用「開始」選單或使用檔案總管瀏覽應用程式的方式，測試您的應用程式。

1. 選擇**下一步**，檢閱應用程式區塊詳細資訊。
**注意**  
彈性機群的建議應用程式套件 (VHD) 檔案大小為小於 1.5 GB。如果您的 VHD 檔案大小超過 1.5 GB，請嘗試減少一個應用程式區塊內封裝的應用程式數量。  
如果您解除安裝應用程式，應用程式套件 (VHD) 檔案大小並不會縮小。使用新的應用程式區塊串流工作階段重新啟動應用程式封裝程序，並安裝較少的應用程式。

1. 選擇**完成應用程式區塊建立並中斷連線**，以建立應用程式套件並將其上傳到 Amazon S3 儲存貯體。如果成功，串流工作階段會自動中斷連線，且應用程式區塊將處於**作用中**狀態。
**注意**  
如果您的應用程式安裝失敗，請選擇**報告問題**以從執行個體收集 WorkSpaces 應用程式相關日誌，並向 WorkSpaces 應用程式團隊報告問題。完成後，結束您的應用程式區塊建置器串流工作階段。您可以嘗試重新啟動程序，使用新的應用程式區塊建置器執行個體建立應用程式區塊。如果問題仍存在，請嘗試使用自訂封裝建立您的應用程式區塊。

# 啟用應用程式區塊
<a name="appstream-app-blocks-activate"></a>

如果已建立具有 WorkSpaces 應用程式封裝的應用程式區塊，但未連接應用程式套件 (VHD)，則應用程式區塊將處於非作用中狀態，且無法用來將應用程式與彈性機群建立關聯。若要啟用應用程式區塊，應用程式套件 (VHD) 必須與應用程式區塊建立關聯。

**建立應用程式套件**

1. 在 https：//[https://console.aws.amazon.com/appstream2](https://console.aws.amazon.com/appstream2) 開啟 WorkSpaces 應用程式主控台。

1. 在左側導覽選單中，選擇**應用程式管理器**、**應用程式區塊**。

1. 選取您要啟用的**非作用中**應用程式區塊，然後從**動作**選單選擇**啟用**。

1. 選取應用程式區塊建置器，然後選擇**啟動應用程式區塊建置器**。
   + 如果清單是空的，表示您可能沒有應用程式區塊建置器，或是您所有的應用程式區塊建置器都已經與其他應用程式區塊相關聯。您可以建立新的應用程式區塊建置器，或取消關聯現有的應用程式區塊建置器並進行測試。
   + 如果應用程式區塊建置器已經與應用程式區塊相關聯，您可以繼續用它來啟用應用程式區塊。
   + 如果選取的應用程式區塊建置器未與任何應用程式區塊建置器相關聯，則它會與您選取的應用程式區塊建立關聯，而且串流工作階段將會啟動。工作階段結束後，應用程式區塊建置器仍會與此應用程式區塊保持相關聯。

1. 應用程式區塊建置器串流工作階段啟動後，依照 [步驟 2：建立應用程式套件](appstream-app-blocks-create.md#appstream-app-blocks-create-step2) 中的步驟建立您的應用程式套件 (VHD) 並啟用應用程式區塊。

# 使用現有的應用程式套件建立應用程式區塊
<a name="appstream-app-blocks-create-VHD"></a>

您可以使用現有的應用程式套件 (VHD) 搭配 WorkSpaces 應用程式封裝來建立 WorkSpaces 應用程式區塊。若要這樣做，請將您的應用程式套件 (VHD) 檔案從來源 Amazon S3 儲存貯體複製到另一個目的地 Amazon S3 儲存貯體。目的地儲存貯體可位於不同的區域中。

**使用現有的應用程式套件建立應用程式區塊**

1. 在 https：//[https://console.aws.amazon.com/appstream2](https://console.aws.amazon.com/appstream2) 開啟 WorkSpaces 應用程式主控台。

1. 在左側導覽選單中，選擇**應用程式管理器**、**應用程式區塊**和**建立應用程式區塊**。

1. 針對應用程式區塊封裝，選取 **WorkSpaces 應用程式**。

1. 針對**應用程式區塊詳細資訊**，輸入應用程式區塊的唯一名稱識別符。或者，您也可以指定以下内容：
   + **名稱**：應用程式區塊的唯一名稱。
   + **顯示名稱** (選用)：易記的應用程式區塊名稱。
   + **說明** (選用)：應用程式區塊的說明。

1. （選用） 具有 WorkSpaces 應用程式封裝的應用程式區塊不需要設定指令碼。您可以選擇性地提供下列**進階選項**作為安裝後步驟：
   + 針對 **S3 中的後置安裝指令碼物件**，輸入代表後置安裝指令碼物件的 Amazon S3 URI，或選擇**瀏覽 S3**，以導覽至您的 Amazon S3 儲存貯體並尋找安裝指令碼物件。
   + 針對**後置安裝指令碼可執行檔**，輸入您的後置安裝指令碼所需的可執行檔。
**注意**  
如果您的後置安裝指令碼可以直接執行，則輸入後置安裝指令碼的檔案名稱。如果您的後置安裝指令碼需要依賴另一個可執行檔 (例如 Microsoft PowerShell) 來執行，則輸入該可執行檔的路徑。  
Microsoft Windows 上 Microsoft PowerShell 的路徑：  
`C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe`  
或者，您可以選擇針對**後置安裝指令碼可執行檔引數**，輸入須提供給安裝指令碼可執行檔以執行安裝指令碼的引數。
**注意**  
如果您使用的是 Microsoft PowerShell 指令碼，則必須指定「-File」參數與您的後置安裝指令碼名稱作為可執行檔引數。此外，請確定執行政策允許您的指令碼執行。若要深入了解，請參閱 [about\$1Execution\$1Policies](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.2) 和[什麼是 PowerShell？](https://docs.microsoft.com/en-us/powershell/scripting/overview?view=powershell-7.2)。  
針對**指令碼設定**下的**執行持續時間 (以秒為單位)**，輸入安裝指令碼的逾時持續時間。
**注意**  
以秒為單位的執行持續時間是 WorkSpaces 應用程式等待安裝後指令碼執行的時間，然後再繼續。如果您的後置安裝指令碼未在此期間內完成，則會對您的使用者顯示錯誤，且應用程式會嘗試啟動。安裝指令碼會在執行持續時間過後終止。

1. 在**匯入設定**下，選擇**使用現有的應用程式區塊應用程式檔案**。針對 **S3 位置**，您可以輸入 Amazon S3 儲存貯體中物件的 Amazon S3 URI，以代表應用程式套件 (VHD)，或者選擇**瀏覽 S3**，以導覽至 Amazon S3 儲存貯體並選取 Amazon S3 儲存貯體中的物件。Amazon S3 儲存貯體的清單涵蓋全域，會列出所有區域的所有儲存貯體。請務必在您要建立應用程式區塊的區域中選取儲存貯體。

1. 選擇**下一步**。

1. 檢閱您輸入的資訊，然後選擇**建立應用程式區塊**。

此時，您的應用程式區塊便會建立，並且處於**作用中**狀態。

# 測試應用程式區塊
<a name="appstream-app-blocks-test"></a>

您可以使用應用程式區塊建置器來測試您的應用程式區塊，並驗證應用程式的各項功能。您不需要針對此選項啟動彈性機群。您還可以建立具有不同執行個體類型或大小的多個應用程式區塊建置器，以及利用不同的運算選項測試應用程式的效能。

**注意**  
只有使用 WorkSpaces 應用程式封裝的應用程式區塊才支援測試應用程式區塊選項。

**測試應用程式區塊**

1. 在 https：//[https://console.aws.amazon.com/appstream2](https://console.aws.amazon.com/appstream2) 開啟 WorkSpaces 應用程式主控台。

1. 在左側導覽選單中，選擇**應用程式管理器**、**應用程式區塊**。

1. 選取您要測試的應用程式區塊，然後從**動作**選單選擇**測試**。

1. 選取應用程式區塊建置器，然後選擇**啟動並測試應用程式區塊**。
   + 如果清單是空的，表示您可能沒有應用程式區塊建置器，或是您所有的應用程式區塊建置器都已經與其他應用程式區塊相關聯。您可以建立新的應用程式區塊建置器，或取消關聯現有的應用程式區塊建置器並進行測試。
   + 如果應用程式區塊建置器已經與應用程式區塊相關聯，您可以繼續用它來啟用應用程式區塊。
   + 如果選取的應用程式區塊建置器未與任何應用程式區塊建置器相關聯，則它會與您選取的應用程式區塊建立關聯，而且串流工作階段將會啟動。工作階段結束後，應用程式區塊建置器仍會與此應用程式區塊保持相關聯。

1. 應用程式區塊建置器會以桌面串流模式在個別瀏覽器視窗中啟動。服務會從 Amazon S3 儲存貯體下載應用程式區塊，並將其安裝在應用程式區塊建置器執行個體上。

1. 現在您的應用程式可以進行串流和測試。您可以透過檔案總管中瀏覽或使用「開始」選單的方式，開啟您的應用程式。

1. 測試完成後，結束串流工作階段。

# 在 Amazon WorkSpaces 應用程式中關聯應用程式區塊
<a name="appstream-app-blocks-associate"></a>

若要使用 WorkSpaces 應用程式封裝來建立、測試或啟用應用程式區塊，您需要將其與應用程式區塊建置器建立關聯。一個應用程式區塊建置器只能與一個應用程式區塊相關聯，反之亦然。

**注意**  
僅支援將應用程式區塊與 WorkSpaces 應用程式封裝建立關聯和取消關聯。

**將應用程式區塊與 Amazon WorkSpaces 應用程式中的應用程式區塊建置器建立關聯**

1. 在 https：//[https://console.aws.amazon.com/appstream2](https://console.aws.amazon.com/appstream2) 開啟 WorkSpaces 應用程式主控台。

1. 在左側導覽選單中，選擇**應用程式管理器**、**應用程式區塊**。

1. 選取應用程式區塊，然後從**動作**選單選擇**關聯**。

1. 選取應用程式區塊建置器，然後選擇**關聯應用程式區塊建置器**。

   如果清單是空的，表示您可能沒有應用程式區塊建置器，或是您所有的應用程式區塊建置器都已經與其他應用程式區塊相關聯。您可以建立新的應用程式區塊建置器，或取消關聯現有的應用程式區塊建置器，再建立關聯。

# 在 Amazon WorkSpaces 應用程式中取消關聯應用程式區塊
<a name="appstream-app-blocks-disassociate"></a>

如果您所有的應用程式區塊建置器都已經與其他應用程式區塊相關聯，而您想要測試、建立或啟用另一個應用程式區塊，您可以選擇建立新的應用程式區塊建置器，或是取消現有應用程式區塊建置器與應用程式區塊的關聯，然後將它搭配新的應用程式區塊使用。

**注意**  
僅支援將應用程式區塊與 WorkSpaces 應用程式封裝建立關聯和取消關聯。  
只有在應用程式區塊建置器處於**已停止**狀態時，才允許取消關聯。

**取消應用程式區塊與應用程式區塊建置器的關聯**

1. 在 https：//[https://console.aws.amazon.com/appstream2](https://console.aws.amazon.com/appstream2) 開啟 WorkSpaces 應用程式主控台。

1. 在左側導覽選單中，選擇**應用程式管理器**、**應用程式區塊**。

1. 選取應用程式區塊，然後從**動作**選單選擇**取消關聯**。

1. 選取已建立關聯的應用程式區塊建置器，然後選擇**取消關聯應用程式區塊建置器**。

# 不支援的應用程式
<a name="app-blocks-unsupported"></a>

在下列情況下安裝或執行應用程式可能會失敗：
+ **安裝後需要重新開機的應用程式**：如果應用程式在須重新開機的安裝後，需要執行其他變更或設定，則可能會失敗。目前，應用程式區塊建置器不支援重新啟動，因為可能造成應用程式無法完成其必要的安裝後步驟。
+ **須取得使用者特定詳細資訊的應用程式**：應用程式僅限針對應用程式區塊建置器上目前已登入的使用者安裝，或在安裝期間須取得應用程式區塊建置器上已登入使用者的詳細資訊 (例如安全性識別碼 (SID))，則可能無法在彈性機群上正確運作。這是因為彈性機群環境內登入的使用者會變更。此外，應用程式重新導向不會記錄 %USERPROFILE% 下的所有目錄。不過，您可以選擇設定後置安裝指令碼，以便隨環境動態變更您的應用程式組態。
+ **須取得機器特定詳細資訊的應用程式**：應用程式在安裝期間須取得應用程式區塊建置器上的機器特定詳細資訊 (例如網路介面卡 GUID)，則可能在彈性機群上遇到問題。這是因為機器詳細資訊 (包括網路介面卡 GUID) 可能會在彈性機群環境內變更。若要解決此問題，您可以設定後置安裝指令碼來處理這些機器特定詳細資訊的組態。

如果您不確定應用程式是否屬於這些類別，您可以使用 WorkSpaces 應用程式封裝來建立應用程式區塊。此程序包含在應用程式區塊建置器執行個體上安裝您的應用程式。如果您的應用程式無法安裝到應用程式區塊建置器執行個體上，您可以採取下列動作：
+ 檢查日誌。應用程式區塊建置器執行個體的錯誤日誌檔位於 C:\$1AppStream\$1AppBlocks\$1errorLog。此日誌會記錄所有安裝失敗，包括登錄機碼和檔案操作處理。如果您在 errorLog 中看到下列任何日誌，表示 WorkSpaces 應用程式區塊建置器目前不支援應用程式的封裝：
  + 「無法建立符號連結」
  + 「服務不支援檔案重新命名」

  如果沒有 errorLog 檔案，或是此檔案是空的，請查看您的應用程式安裝日誌，以找出失敗的原因。
+ 回報問題。選取**回報問題**按鈕，此按鈕位於應用程式區塊建置器的應用程式建置器輔助程式上。選取此選項將從您的應用程式區塊建置器執行個體收集所有 WorkSpaces 應用程式日誌，並將其提交至 WorkSpaces 應用程式團隊。
+ 使用自訂封裝建立應用程式區塊：如果您無法使用應用程式區塊建置器封裝自己的應用程式，可以嘗試使用自訂封裝方法建立應用程式區塊。如需詳細資訊，請參閱[自訂應用程式區塊](custom-app-blocks.md)。
+ 如需其他協助，請聯絡 AWS Support。如需詳細資訊，請參閱 [AWS 支援 中心](https://console.aws.amazon.com/support/home#/)。

請務必考慮這些潛在限制，並在為您的應用程式使用 WorkSpaces 應用程式封裝時相應地進行規劃。