

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

# 建立 Linux 型映像
<a name="create-linux-based-images"></a>

您可以透過連線至 Linux 映像建置器、安裝所需的應用程式、建立預設應用程式設定和環境變數，以及使用命令列界面 (CLI) 工具或映像助理 (GUI) 工具將這些應用程式新增至應用程式目錄，來建立 Linux 型 Amazon WorkSpaces 應用程式映像。若要開啟 GUI 工具，請在應用程式清單中搜尋**映像助理**。

**Topics**
+ [為您的使用者建立預設應用程式設定](create-default-app-settings.md)
+ [為 Linux 使用者建立預設環境變數](create-default-variables-linux.md)
+ [最佳化 Linux 應用程式的啟動效能](optimize-launch-performance.md)
+ [建立工作階段指令碼](create-session-scripts.md)
+ [使用適用於 Linux 的映像助理 CLI 工具](image-assistant-cli.md)
+ [啟用和停用網路攝影機支援](webcam-support.md)
+ [啟用和停用主資料夾的重型檔案同步模式](heavy-file-sync.md)
+ [教學課程：建立自訂 Linux 型 WorkSpaces 應用程式映像](tutorial-create-linux-image.md)
+ [教學課程：啟用 Linux 映像的日文支援](enable-japanese-support-linux.md)

# 為您的使用者建立預設應用程式設定
<a name="create-default-app-settings"></a>

請依照下列步驟為您的使用者建立預設應用程式設定。

**Topics**
+ [步驟 1：在映像建置器上安裝 Linux 應用程式](#app-settings-image-install)
+ [步驟 2：建立 TemplateUser 帳戶](#app-settings-template-user)
+ [步驟 3：建立預設應用程式設定](#app-settings-image-create-default-app-settings)
+ [步驟 4：儲存預設應用程式設定](#app-settings-image-save-default-app-settings)
+ [步驟 5：測試預設應用程式設定 (選用)](#app-settings-image-test-applications)
+ [步驟 6：清除](#app-settings-image-finish)

## 步驟 1：在映像建置器上安裝 Linux 應用程式
<a name="app-settings-image-install"></a>

在此步驟中，您要連線 Linux 映像建置器並在映像建置器上安裝您的應用程式。

**在映像建置器上安裝應用程式**

1. 執行下列其中一項操作來連線至映像建置器：
   + [使用 WorkSpaces 應用程式主控台](managing-image-builders-connect-console.md) （僅適用於 Web 連線）
   + [建立串流 URL](managing-image-builders-connect-streaming-URL.md) （適用於 Web 或 WorkSpaces 應用程式用戶端連線）
**注意**  
您將以 ImageBuilderAdmin 使用者身分登入 Amazon Linux GNOME 桌面，並擁有根管理員權限。

1. 安裝您需要的應用程式。例如，若要從公有 yum repo 安裝 Chromium 瀏覽器，請先開啟終端機應用程式，然後執行下列命令：

   **[ImageBuilderAdmin]\$1 sudo yum update && sudo yum install chromium.x86\$164** 

## 步驟 2：建立 TemplateUser 帳戶
<a name="app-settings-template-user"></a>

在此步驟中，您會建立 TemplateUser 帳戶，該帳戶會為串流使用者建立預設應用程式設定。

**建立 TemplateUser 帳戶**

1. 建立未具備根許可的 TemplateUser 帳戶。例如，在「終端機」視窗中，執行下列命令以在映像建置器上建立 TemplateUser：

   **[ImageBuilderAdmin]\$1 sudo useradd -m TemplateUser** 

   **[ImageBuilderAdmin]\$1 echo -e '<*password*>\$1n<*password*>\$1n' \$1 sudo passwd TemplateUser**

1. 切換至 TemplateUser 帳戶：

   **[ImageBuilderAdmin]\$1 su - TemplateUser** 

## 步驟 3：建立預設應用程式設定
<a name="app-settings-image-create-default-app-settings"></a>

在此步驟中，您會為 WorkSpaces 應用程式使用者建立預設應用程式設定。這樣做可讓您的使用者在 WorkSpaces 應用程式串流工作階段期間快速開始使用應用程式，而不需要自行建立或設定這些設定。

**為您的使用者建立預設應用程式設定**

1. 啟動要建立預設設定的應用程式。例如，在「終端機」視窗中，執行下列命令以啟動 Chromium 瀏覽器：

    **[TemplateUser]\$1 chromium-browser**

1. 設定應用程式的設定。例如，將 Chromium 瀏覽器的首頁設定為 **https://aws.amazon.com**。

1. 關閉應用程式。

1. 登出：

   **[TemplateUser]\$1 logout** 

## 步驟 4：儲存預設應用程式設定
<a name="app-settings-image-save-default-app-settings"></a>

在此步驟中，您將複製新增至 **/etc/skel/** 目錄的預設應用程式設定，並讓串流使用者可以使用這些設定。

**儲存預設應用程式設定**
+ 在「終端機」視窗中執行下列命令，為您的串流使用者複製預設應用程式設定：

   **[ImageBuilderAdmin]\$1 sudo cp -r -f /home/TemplateUser/. /etc/skel**

## 步驟 5：測試預設應用程式設定 (選用)
<a name="app-settings-image-test-applications"></a>

在此步驟中，請確認您新增的應用程式正確執行，而且預設應用程式設定如預期運作。

**在映像建置器上測試您的應用程式和預設設定**

1. 建立未具備根許可的測試使用者。例如，在**終端機**視窗中，執行下列命令以在映像建置器上建立 **test-user**：

   **[ImageBuilderAdmin]\$1 sudo useradd -m test-user**

   **[ImageBuilderAdmin]\$1 echo -e '*password*>\$1n<*password*>\$1n' \$1 sudo passwd test-user** 

1. 切換到測試使用者。

   **[ImageBuilderAdmin]\$1 su - test-user**

1. 以測試使用者身分啟動應用程式 (例如 Chromium)：

   **[test-user]\$1 /usr/bin/chromium-browser** 

1. 確認預設設定可供測試使用者使用 (例如 Chromium 首頁為 https://aws.amazon.com/)。

1. 登出：

   **[test-user]\$1 logout**

## 步驟 6：清除
<a name="app-settings-image-finish"></a>

最後，最後一個步驟是清除。

**清理方式**

1. 刪除 TemplateUser：

   **[ImageBuilderAdmin]\$1 sudo killall -u TemplateUser**

   **[ImageBuilderAdmin]\$1 sudo userdel -r TemplateUser**

1. 刪除 test-user （如果您略過步驟 5，則不需要）：

   **[ImageBuilderAdmin]\$1 sudo killall -u test-user**

   **ImageBuilderAdmin]\$1 sudo userdel -r test-user**

# 為 Linux 使用者建立預設環境變數
<a name="create-default-variables-linux"></a>

您可以在 Linux 映像建置器執行個體上建立環境變數。建立環境變數後，即可在從該映像建立的串流執行個體上使用這些變數。

**注意**  
在 Linux 機群執行個體上，使用映像助理 (GUI) 工具設定的環境變數和預設系統環境變數會透過 /etc/profile.d/appstream\$1system\$1vars.sh 指令碼匯出。若要存取這些環境變數，您必須在應用程式中明確取得 /etc/profile.d/appstream\$1system\$1vars.sh 指令碼。

**為您的使用者建立環境變數**

1. 如果資料夾 `/etc/profile` 不存在，請執行以下命令建立資料夾：

   **[ImageBuilderAdmin]\$1 sudo mkdir -p /etc/profile.d** 

1. 若要在此資料夾中建立新的 Shell 指令碼檔案 (例如 my-environment.sh)，請執行下列命令：

   **[ImageBuilderAdmin]\$1 vim my-environment.sh**

1. 在指令碼檔案的第一行，新增下列內容：

   **\$1\$1/bin/sh **

1. 針對後續每一行，新增 **export** 命令來設定映像的環境變數。下列範例會將 `$HOME/bin` 新增至 `PATH` 變數。

   **export PATH=”\$1HOME/bin:\$1PATH”**

1. 按 **Esc** 鍵返回 vim 中的命令模式，然後執行下列命令儲存指令碼並退出 vim：

   **:x**

1. 執行下列命令以允許指令碼作為程式執行：

   **[ImageBuilderAdmin]\$1 chmod \$1x my-environment.sh**

# 最佳化 Linux 應用程式的啟動效能
<a name="optimize-launch-performance"></a>

如果您是使用映像助理 GUI 工具，此工具會自動最佳化應用程式的啟動效能。

如果您視使用映像助理 CLI，請進行下列步驟以手動最佳化啟動效能。當您建立檔案並將檔案新增至應用程式最佳化清單檔案時，在新機群執行個體上初次啟動應用程式時，啟動速度會更快。不過，這也會延長將該機群執行個體提給使用者使用所需的時間。最佳化清單檔案是每個應用程式的行分隔文字檔案。

您可以手動或依照下列步驟建立清單檔案 (例如 <*your-app*>-manifest.txt)。

**建立資訊清單檔案**

1. 請確定您嘗試最佳化的應用程式已啟動並執行。

1. 從 Linux 映像建置器中的終端機執行下列命令：

   **ps -ef \$1 grep <*application-process-name*>**

1. 從最後一個步驟的輸出中搜尋最小 PID 號碼。這是應用程式的根父處理程序的 PID。

1. 讓應用程式保持執行，且務必使用您的使用者所需的初始元件。這樣可確保最佳化程序順利擷取這些元件。

1. 建立包含下列內容的指令碼檔案 (例如 `~/getfilestool.sh`)：

   ```
   #!/bin/bash
   ## usage getfilestool.sh $pid
   lsof -p $(pstree -p $1 | grep -o '([0-9]\+)' | grep -o '[0-9]\+' | tr '\012' ,)|grep REG | sed -n '1!p' | awk '{print $9}'|awk 'NF'
   ```

1. 確認檔案可以透過下列命令執行：

   **[ImageBuilderAdmin]\$1 chmod u\$1x \$1/getfilestool.sh**

1. 執行下列命令，以從步驟 3 中找到的根父處理程序擷取所有執行中的檔案，並將其儲存到暫存清單檔案中。

   **[ImageBuilderAdmin]\$1 sudo \$1/getfilestool.sh <*root-parent-pid*> > /tmp/<y*our-app*>-manifest.txt **

1. 確認最佳化清單檔案的內容，這是每個應用程式的行分隔文字檔案。

您可以透過使用映像助理命令列介面 (CLI) 工具，以每個應用程式為基礎來指定最佳化清單檔案。如需詳細資訊，請參閱[使用適用於 Linux 的映像助理 CLI 工具](image-assistant-cli.md)。

# 建立工作階段指令碼
<a name="create-session-scripts"></a>

WorkSpaces 應用程式可在 Windows 和 Linux 型串流執行個體上提供執行個體工作階段指令碼。如需有關工作階段指令碼的詳細資訊，請參閱 [使用工作階段指令碼來管理 Amazon WorkSpaces 應用程式使用者的串流體驗](use-session-scripts.md)。

工作階段指令碼是在 WorkSpaces 應用程式映像中指定。若要在 Linux 執行個體上尋找工作階段指令碼組態檔案，請瀏覽至 `/opt/appstream/SessionScripts/config.json`。下列程式碼是範例 `config.json` 檔案，會指定名為「`test-session-start`」的工作階段啟動指令碼，以及名為「`test-session-stop`」的工作階段結束指令碼及其執行期參數。確認 `config.json` 中參考的指令碼具備執行許可，並且已定義命令解譯器（例如 \$1\$1/bin/bash）。

```
{
     "SessionStart": {
          "Executables": [
               {
                    "Context": "system",
                    "Filename": "/opt/appstream/SessionScripts/test-session-start",
                    "Arguments": "arg1",
                    "S3LogEnabled": true
               }
          ],
          "WaitingTime": 30
     },
     "SessionTermination": {
          "Executables": [
               { 
                    "Context": "system",
                    "Filename": "/opt/appstream/SessionScripts/test-session-stop", 
                    "Arguments": "arg2", 
                    "S3LogEnabled": true
               }
          ],
          "WaitingTime": 30
     }
}
```

# 使用適用於 Linux 的映像助理 CLI 工具
<a name="image-assistant-cli"></a>

在 Linux 型映像建置器上，您可以使用映像助理 CLI 工具 **AppStreamImageAssistant** 來建立和管理 WorkSpaces 應用程式映像。此工具位於 `/usr/local/appstream/image-assistant/AppStreamImageAssistant`，且符號連結位於 `/bin/AppStreamImageAssistant`。此適用於 Linux 的 CLI 工具支援多項與適用於 Windows 的映像助理 CLI 工具相同的操作。如需這些操作的詳細資訊，請參閱 [建立和管理 Amazon WorkSpaces 應用程式映像的映像助理 CLI 操作](cli-operations-managing-creating-image-image-assistant.md)。

# 啟用和停用網路攝影機支援
<a name="webcam-support"></a>

WorkSpaces 應用程式透過將本機網路攝影機視訊輸入重新導向至 WorkSpaces 應用程式串流工作階段，支援即時音訊視訊 (AV)。此功能可讓您的使用者在 WorkSpaces 應用程式串流工作階段中使用其本機網路攝影機進行視訊和音訊會議。透過即時 AV 和即時音訊的支援，您的使用者可以使用熟悉的視訊和音訊會議應用程式進行協作，而無需離開其 WorkSpaces 應用程式串流工作階段。

若要使用此功能，您必須使用在 WorkSpaces 2022 年 9 月 21 日或之後發行的 Linux WorkSpaces 應用程式代理程式的 Linux WorkSpaces 應用程式映像。

**注意**  
採用 Rocky Linux 或 Red Hat Enterprise Linux 技術的 stream.standard.small 執行個體不支援即時 AV。使用者在用戶端工具列上看不到攝影機和麥克風圖示。

Linux 串流工作階段預設會啟用即時 AV 功能。若要在 Linux 映像建置器上為使用者設定網路攝影機許可，請建立 `/etc/appstream/appstream.conf` 並新增下列內容：

**注意**  
指定 **1** 以啟用網路攝影機，或 **0** 以停用網路攝影機。

```
[webcam]
permission = 1
```

# 啟用和停用主資料夾的重型檔案同步模式
<a name="heavy-file-sync"></a>

您可以為您的組織啟用 Amazon Simple Storage Service 主資料夾選項。當您為 WorkSpaces 應用程式堆疊啟用 Amazon S3 主資料夾時，堆疊的使用者可以在其應用程式串流工作階段期間存取持久性儲存資料夾。您的使用者無須進行其他設定，便可以存取他們的主資料夾。使用者存放在主資料夾中的資料會自動備份到 中的 Amazon S3 儲存貯體 AWS 帳戶，並在後續工作階段中提供給這些使用者。如需詳細資訊，請參閱[為您的 WorkSpaces 應用程式使用者啟用和管理主資料夾](home-folders.md)。

為了確保順暢的體驗並解決一些現有的限制，當使用者將大型文字檔案從串流執行個體儲存到主資料夾時，可能會觀察到不一致的檔案同步，如果大型檔案上傳到 Amazon S3 是使用 WorkSpaces 應用程式時常見的使用者案例，WorkSpaces 應用程式管理員可以開啟 **heavy\$1sync** 組態選項。 WorkSpaces 開啟此選項表示它可能會為主資料夾檔案同步程序增加一些延遲，但保證所有同步對 Amazon S3 的完整性。

此功能適用於所有 Red Hat Enterprise Linux WorkSpaces 映像，以及使用 2024 年 9 月 12 日當天或之後發行的 Linux WorkSpaces 應用程式代理程式的 Linux WorkSpaces 應用程式映像。

Red Hat Enterprise Linux 和 Amazon Linux 串流工作階段預設會停用繁重同步功能。若要為 Red Hat Enterprise Linux 或 Amazon Linux 映像建置器上的使用者設定繁重同步許可，請建立`/etc/appstream/appstream.conf`並新增下列內容：

**注意**  
指定 **1** 以啟用繁重同步，或指定 **0** 以停用繁重同步。

```
[storage]
heavy_sync = 1
```

# 教學課程：建立自訂 Linux 型 WorkSpaces 應用程式映像
<a name="tutorial-create-linux-image"></a>

本教學課程說明如何建立自訂 Linux 型 Amazon WorkSpaces 應用程式映像，其中包含您可以串流給使用者的應用程式。

**重要**  
請勿在映像建置器中建立名為 "as2-streaming-user" 的使用者。這是機群的預留使用者名稱。如果您在 WorkSpaces 應用程式工作流程之外建立此使用者名稱，您可能會在機群中遇到串流問題。

**Topics**
+ [步驟 1：在映像建置器上安裝 Linux 應用程式](#tutorial-linux-image-install)
+ [步驟 2：產生應用程式最佳化清單檔案](#tutorial-linux-image-manifest)
+ [步驟 3：建立 WorkSpaces 應用程式應用程式目錄](#tutorial-linux-image-catalog)
+ [步驟 4：建立預設應用程式設定和環境變數](#tutorial-linux-image-create-default-app-settings)
+ [步驟 5：測試應用程式和設定](#tutorial-linux-image-test-applications)
+ [步驟 6：完成建立您的映像](#tutorial-linux-image-finish-create-image)
+ [步驟 7 (選用)：標記和複製映像](#tutorial-linux-image-tag-copy)
+ [步驟 8：清除](#tutorial-linux-image-finish)

## 步驟 1：在映像建置器上安裝 Linux 應用程式
<a name="tutorial-linux-image-install"></a>

在此步驟中，您要連線 Linux 映像建置器並在映像建置器上安裝您的應用程式。

**在映像建置器上安裝應用程式**

1. 執行下列其中一項操作來連線至映像建置器：
   + [使用 WorkSpaces 應用程式主控台](managing-image-builders-connect-console.md) （僅適用於 Web 連線）
   + [建立串流 URL](managing-image-builders-connect-streaming-URL.md) （適用於 Web 或 WorkSpaces 應用程式用戶端連線）
**注意**  
您將以 ImageBuilderAdmin 使用者身分登入 Amazon Linux GNOME 桌面，並擁有根管理員權限。

1. 安裝您需要的應用程式。例如，若要從公有 yum repo 安裝 Chromium 瀏覽器，請先開啟終端機應用程式，然後執行下列命令：

   **[ImageBuilderAdmin]\$1 sudo yum update && sudo yum install chromium.x86\$164** 
**注意**  
只從您信任的網站下載並安裝應用程式。

## 步驟 2：產生應用程式最佳化清單檔案
<a name="tutorial-linux-image-manifest"></a>

在此步驟中，您會為步驟 1 中安裝的每個應用程式產生清單檔案。

**產生清單檔案以最佳化應用程式的啟動效能**

1. 請確定您嘗試最佳化的應用程式 (例如 Chromium) 已啟動並執行。

1. 在終端機視窗中，執行下列命令來列出與應用程式相關的處理程序：

   **[ImageBuilderAdmin]\$1 ps -ef \$1 grep chromium **

1. 從上面的命令輸出中尋找根父 PID。以下是輸出範例，根父 PID 為 16712：  
**Example**  

   ```
   [ImageBuilderAdmin]$ ps -ef | grep chromium
   
   ImageBu+ 16712 4128 0 Aug26 ? 00:00:44 /usr/lib64/chromium- browser/chromium-browser --enable-plugins --enable-extensions -- enable-user- scripts --enable-printing --enable-gpu-rasterization -- enable-sync --auto-ssl- client-auth
   
   ImageBu+ 16726 16712 0 Aug26 ? 00:00:00 /usr/lib64/chromium- browser/chromium-browser --type=zygote --no-zygote-sandbox ImageBu+ 16727 16712 0 Aug26 ? 00:00:00 /usr/lib64/chromium- browser/chromium- browser --type=zygote
   
   ImageBu+ 16731 16727 0 Aug26 ? 00:00:00 /usr/lib64/chromium- browser/chromium-browser --type=zygot
   ```

1. 讓應用程式保持執行，且務必使用您的使用者所需的初始元件。這樣可確保最佳化程序順利擷取這些元件。

1. 建立包含下列內容的指令碼檔案 (例如 `~/getfilestool.sh`)：

   ```
   #!/bin/bash
   ## usage getfilestool.sh $pid
   lsof -p $(pstree -p $1 | grep -o '([0-9]\+)' | grep -o '[0-9]\+' | tr '\012' ,)|grep REG | sed -n '1!p' | awk '{print $9}'|awk 'NF'
   ```

1. 執行下列命令以確認檔案可執行：

   **[ImageBuilderAdmin]\$1 chmod u\$1x \$1/getfilestool.sh** 

1. 執行下列命令，從上面步驟 3 中找到的根父處理程序擷取所有執行中檔案，並將其儲存到暫存清單檔案中：

   **[ImageBuilderAdmin]\$1 sudo \$1/getfilestool.sh 16712 > /tmp/chromium-manifest.txt **

1. 確認最佳化清單檔案的內容，這是每個應用程式的行分隔文字檔案。

## 步驟 3：建立 WorkSpaces 應用程式應用程式目錄
<a name="tutorial-linux-image-catalog"></a>

在此步驟中，您會使用映像建置器`AppStreamImageAssistant`上的 CLI 工具，透過指定映像的應用程式來建立 WorkSpaces 應用程式目錄。針對您計劃串流的每個應用程式，您可以指定名稱、顯示名稱、要啟動的可執行檔和要顯示的圖示。

**建立 WorkSpaces 應用程式目錄**

1. 在映像建置器桌面上，從側邊面板或開啟應用程式網格來開啟**終端機**。

1. 執行 **AppStreamImageAssistant --help** 以查看可用命令的清單。您將使用這些命令來新增應用程式並建立映像。

1. 執行下列命令，將已安裝的應用程式 （例如 Chromium) 新增至 WorkSpaces 應用程式使用者的應用程式清單：

   ```
   AppStreamImageAssistant add-application \
    --name Chromium \
    --absolute-app-path /usr/lib64/chromium-browser/chromium-browser \
    --display-name Chromium \
    --absolute-icon-path /usr/share/icons/hicolor/256x256/apps/chromium-browser.png \
    --absolute-manifest-path /tmp/chromium-manifest.txt
   ```

   或者，執行下列命令：

   ```
   AppStreamImageAssistant add-application \
    --name="Chromium" \
    --absolute-app-path="/usr/lib64/chromium-browser/chromium-browser" \
    --display-name="Chromium" \
    --absolute-icon-path="/usr/share/icons/hicolor/256x256/apps/chromium-browser.png" \
    --absolute-manifest-path="/tmp/chromium-manifest.txt"
   ```

1. 若要新增更多應用程式，請為每個額外的應用程式重複步驟 3。

1. 若要查看已新增至目錄中的應用程式清單，以及像是圖示路徑和啟動參數等中繼資料，請執行下列命令：

   **AppStreamImageAssistant list-applications**

1. 若要從目錄中移除應用程式，請執行下列命令：

   **AppStreamImageAssistant remove-application –-name *application\$1name***

## 步驟 4：建立預設應用程式設定和環境變數
<a name="tutorial-linux-image-create-default-app-settings"></a>

在此步驟中，您會為 WorkSpaces 應用程式使用者建立預設應用程式設定和環境變數。這樣做可讓您的使用者在 WorkSpaces 應用程式串流工作階段期間快速開始使用應用程式，而不需要自行建立或設定這些設定。

**為您的使用者建立預設應用程式和環境變數**

1. 啟動要建立預設設定的應用程式。例如，在「終端機」視窗中，執行下列命令以啟動 Chromium 瀏覽器：

    **[ImageBuilderAdmin]\$1 chromium-browser**

1. 設定應用程式的設定。例如，將 Chromium 瀏覽器的首頁設定為 **https://aws.amazon.com**。

1. 確定 Chromium 應用程式已關閉，然後執行下列命令，將 Chromium 的組態複製到 **/etc/skel**：

   **[ImageBuilderAdmin]\$1 sudo mkdir /etc/skel/.config**

   **[ImageBuilderAdmin]\$1 sudo cp -R \$1/.config/chromium /etc/skel/.config** 

1. 設定環境變數，然後將它新增至指令碼檔案。例如，執行下列命令：

   **[ImageBuilderAdmin]\$1 echo "export *FOO*=*BAR*" \$1 sudo tee -a /etc/profile.d/myenvvars.sh** 

   **[ImageBuilderAdmin]\$1 sudo chmod \$1x /etc/profile.d/myenvvars.sh** 

## 步驟 5：測試應用程式和設定
<a name="tutorial-linux-image-test-applications"></a>

在此步驟中，請確認您新增的應用程式正確執行，而且預設應用程式設定和環境變數如預期運作。

**在映像建置器上測試您的應用程式和預設設定**

1. 建立未具備根許可的測試使用者。例如，在**終端機**視窗中，執行下列命令以在映像建置器上建立 **test-user**：

   **[ImageBuilderAdmin]\$1 sudo useradd -m test-user**

   **[ImageBuilderAdmin]\$1 echo -e 'Pa55w0rdas2\$1\$1\$1\$1nPa55w0rdas2\$1\$1\$1\$1n' \$1 sudo passwd test-user** 

1. 切換到測試使用者。

   **[ImageBuilderAdmin]\$1 su - test-user**

1. 以測試使用者身分啟動應用程式 (例如 Chromium)：

   **[test-user]\$1 /usr/bin/chromium-browser** 

1. 確認預設設定可供測試使用者使用 (例如 Chromium 首頁為 https://aws.amazon.com/)。

1. 確認環境變數可供測試使用者使用。例如，執行下列命令：

   **[test-user]\$1 echo \$1*FOO***

   此命令應會在終端機中顯示輸出 ***BAR***。

1. 從此映像建置器建立映像之前，執行下列命令以刪除測試使用者：

   **\$1 logout test user**

   **[test-user]\$1 logout**

   **\$1 kill test user's running processes**

   **[ImageBuilderAdmin]\$1 sudo killall -u test-user**

   **\$1 delete user**

   **[ImageBuilderAdmin]\$1 sudo userdel -r test-user**

## 步驟 6：完成建立您的映像
<a name="tutorial-linux-image-finish-create-image"></a>

在此步驟中，選擇映像名稱以及完成建立您的映像。

**建立映像**

1. 在**終端機**視窗中，執行 **AppStreamImageAssistant create-image** 以從映像建置器建立映像。此映像包含您已安裝和註冊的應用程式，以及您已設定的任何工作階段指令碼和預設應用程式設定。

   若要查看可用選項的清單，執行 **AppStreamImageAssistant create-image --help**。如需詳細資訊，請參閱 [使用映像助理 CLI 操作，以程式設計方式建立 Amazon WorkSpaces 應用程式映像](programmatically-create-image.md) 中的 **create-image** 操作。

1. 遠端工作階段會在一小段時間後中斷連線。當 **Lost Connectivity (遺失連線)** 訊息出現時，請關閉瀏覽器標籤。雖然已建立映像，但映像建置器狀態顯示為 **Snapshotting (正在建立快照)**。在此程序完成前，您無法連線到映像建置器。

1. 請返回主控台並導覽至 **Images (映像)**、**Image Registry (映像登錄)**。確認您的新映像出現在清單中。

   建立映像時，主控台的映像登錄中所顯示的映像狀態為**待定**。您無法連線到處於**待定**狀態的映像。

1. 選擇**重新整理**圖示以更新狀態。映像建立之後，映像狀態會變更為 **Available (可用)**，然後映像建置器會自動停止。

   若要繼續建立映像，請啟動映像建置器並從主控台連線，或建立新的映像建置器。

## 步驟 7 (選用)：標記和複製映像
<a name="tutorial-linux-image-tag-copy"></a>

您可以在映像建立期間或建立映像之後，將一或多個標籤新增到映像。您也可以複製相同區域內的映像，或將映像複製到同一 Amazon Web Services 帳戶內的新區域。複製來源映像會產生相同但不同的目的地映像。 不過， AWS 不會複製任何使用者定義的標籤。此外，您只能複製您建立的自訂映像，不能複製 AWS提供的基礎映像。

**注意**  
一次最多只能將兩個映像複製到目標。如果映像複製目標達到映像限制，您會收到錯誤。若要在這種情況下複製映像，您必須先移除目標中的映像。當目標低於映像配額 (也稱為限制) 後，請從來源區域啟動映像複製。如需詳細資訊，請參閱[Amazon WorkSpaces 應用程式Service Quotas](limits.md)。

**將標籤新增至現有的映像**

1. 在導覽窗格中，選擇 **Images (映像)**、**Image Registry (映像登錄)**。

1. 在映像清單中，選取您要新增標籤的映像。

1. 選擇**標籤**、選擇**新增/編輯標籤**，然後選擇**新增標籤**。指定標籤的索引鍵和值，然後選擇**儲存**。

如需詳細資訊，請參閱[標記 Amazon WorkSpaces 應用程式資源](tagging-basic.md)。

**複製映像**

跨地理不同區域複製映像可讓您根據同一映像從多個區域串流應用程式。透過以更接近使用者的方式串流應用程式，您可以改善使用者使用 WorkSpaces 應用程式串流應用程式的體驗。

1. 在導覽窗格中，選擇 **Images (映像)**、**Image Registry (映像登錄)**。

1. 在映像清單中，選取您要複製的映像。

1. 選擇 **Actions (動作)**、**Copy (複製)**。

1. 在 **Copy Image (複製映像)** 對話方塊中，指定下列資訊，然後選擇 **Copy Image (複製映像)**：
   + 針對 **Destination region (目標區域)**，選擇要放入複製新映像的區域。
   + 針對 **Name (名稱)**，指定映像複製到目標時會有的名稱。
   + 針對 **Description (描述)** (選用)，指定映像複製到目標時會有的描述。

1. 若要查看複製操作的進度，請返回主控台並導覽至 **Images (映像)**、**Image Registry (映像登錄)**。使用導覽列切換到目標區域 (如果適用)，確認您的新映像出現在映像清單中。

   新映像一開始出現在您主控台映像登錄中的狀態為 **Copying (正在複製)**。成功建立映像之後，映像狀態會變更為 **Available (可用)**，這表示您可以使用此映像啟動堆疊以及串流應用程式。

## 步驟 8：清除
<a name="tutorial-linux-image-finish"></a>

最後，您可以停止執行中的映像建置器來釋出資源，以免您的帳戶不小心產生費用。建議停止任何未使用的執行中映像建置器。如需詳細資訊，請參閱 [WorkSpaces 應用程式定價](https://aws.amazon.com/appstream2/pricing/)。

**停止執行中的映像建置器**

1. 在導覽窗格中，選擇 **Images (映像)**、**Image Builders (映像建置器)**，然後選取執行中的映像建置器執行個體。

1. 選擇 **Actions (動作)**、**Stop (停止)**。

# 教學課程：啟用 Linux 映像的日文支援
<a name="enable-japanese-support-linux"></a>

本教學課程說明如何啟用 Linux 映像的日文支援。這可讓映像上的應用程式顯示日文字元，以及讓串流使用者在來自映像的串流工作階段中使用日文輸入法。

**Topics**
+ [步驟 1：安裝日文字型和輸入法](#tutorial-japanese-font)
+ [步驟 2：設定系統時區](#tutorial-japanese-zone)
+ [步驟 3：設定系統地區設定和顯示語言](#tutorial-japanese-locale)
+ [步驟 4：設定輸入法](#tutorial-japanese-input)
+ [步驟 5：設定鍵盤配置](#tutorial-japense-keyboard)
+ [步驟 6：在映像建置器上驗證](#tutorial-japense-verify)
+ [步驟 7：建立映像](#tutorial-japanese-create)

## 步驟 1：安裝日文字型和輸入法
<a name="tutorial-japanese-font"></a>

在此步驟中，您將連線 Linux 映像建置器並安裝您選擇的字型和輸入法套件。

**安裝日文字型和輸入法**

1. 執行下列兩項操作之一，以連線至映像建置器：
   + [使用 WorkSpaces 應用程式主控台](managing-image-builders-connect-console.md) （僅適用於 Web 連線）
   + [建立串流 URL](managing-image-builders-connect-streaming-URL.md) （適用於 Web 或 WorkSpaces 應用程式用戶端連線）
**注意**  
您將以 ImageBuilderAdmin 使用者身分登入 Amazon Linux GNOME 桌面，並擁有根管理員權限。

1. 安裝您需要的字型和輸入法。若要執行這項操作，請開啟終端機應用程式，然後執行下列命令：

   **sudo yum install vlgothic-p-fonts.noarch**

   **sudo yum install ibus-kkc.x86\$164**

1. 除了上述命令之外，對於 Rocky Linux 和 Red Hat Enterprise Linux，請執行下列命令：

   **sudo yum install glibc-langpack-ja**

## 步驟 2：設定系統時區
<a name="tutorial-japanese-zone"></a>

若要設定系統時區，請執行下列命令：

**sudo timedatectl set-timezone "Asia/Tokyo"**

## 步驟 3：設定系統地區設定和顯示語言
<a name="tutorial-japanese-locale"></a>

若要設定系統地區設定和顯示語言，請執行下列命令。

**設定系統地區設定和顯示語言**

1. 執行命令 **sudo vim /etc/cloud/cloud.cfg** 以更新 `cloud-init config` 檔案，並將 **locale** 變更為 **locale: ja\$1JP.utf8**，然後儲存並關閉檔案。

1. 執行 **sudo localectl set-locale LANG=ja\$1JP.utf8** 以更新系統設定。

1. 執行 **sudo gsettings set org.gnome.system.locale region "ja\$1JP.utf8"** 以更新 Gnome Shell 設定。

## 步驟 4：設定輸入法
<a name="tutorial-japanese-input"></a>

為您要新增至映像的應用程式設定輸入法。如需如何安裝應用程式、產生清單檔案以及建立預設設定的詳細資訊，請參閱 [教學課程：建立自訂 Linux 型 WorkSpaces 應用程式映像](tutorial-create-linux-image.md)。在此步驟中，我們假設您已安裝應用程式 Firefox，位於 `/usr/local/firefox/firefox`。

**設定輸入法**

1. 執行命令 **sudo vim /usr/local/bin/update-input-method.sh** 以建立指令碼，並將下列內容新增至指令碼：

   ```
   #!/bin/bash
   
   function start_process()
   {
       command=$1
       process_name=$2
   
       process_count=$(pgrep $process_name -c)
       echo "$(date) current $process_name count: $process_count"
       while [ $process_count -lt 1 ]
       do
           echo "$(date) starting $process_name"
           eval $command
           sleep 1
           process_count=$(pgrep $process_name -c)
       done
       echo "$(date) $process_name started"
   }
   
   start_process "ibus-daemon --xim &" "ibus-daemon"
   start_process "/usr/libexec/ibus-engine-kkc --ibus &" "ibus-engine-kkc"
   
   gsettings set org.gnome.desktop.input-sources sources "[('ibus','kkc'), ('xkb', 'us')]"
   gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['<Control>space']"
   gsettings set org.gnome.desktop.wm.keybindings switch-input-source-backward "['<Shift><Control>space']"
   
   echo "$(date) updated input source and switch shortcut"
   ```

   在上方的指令碼中，第一個輸入來源 (‘ibus’, ‘kkc’) 是預設輸入法。您可以藉由變更輸入來源的順序來變更預設輸入法。此外，「Control\$1空格鍵」和「Shift\$1Control\$1空格鍵」已指定為切換輸入法的快速鍵組合。您可以指定自己的按鍵組合，供使用者在串流工作階段期間用來切換輸入法。

1. 建立用於啟動您要新增至映像之應用程式 (Firefox) 的指令碼。若要執行此操作，請執行命令 **sudo vim /usr/local/bin/firefox-jp.sh**，然後將下列內容新增至指令碼：

   ```
   #!/bin/bash
   
   # Gather required environment variables from the GNOME shell session
   while IFS= read -r -d $'\0' env_var; do
       case "$env_var" in
           DBUS_SESSION_BUS_ADDRESS=*|\
           GTK_IM_MODULE=*|\
           QT_IM_MODULE=*|\
           XMODIFIERS=*|\
           XAUTHORITY=*)
               echo "$env_var"
               export "$env_var"
               ;;
       esac
   done < "/proc/$(pgrep -u as2-streaming-user gnome-shell | head -n1)/environ"
   
   /usr/local/bin/update-input-method.sh > /var/tmp/update-input-method.log 2>&1 &
   
   /usr/local/firefox/firefox &
   ```

1. 執行下列命令以新增執行許可至這兩個指令碼：

   **sudo chmod \$1x /usr/local/bin/update-input-method.sh**

   **sudo chmod \$1x /usr/local/bin/firefox-jp.sh**

1. 如果您已為應用程式建立最佳化清單檔案，請執行下列命令，將應用程式啟動指令碼新增至應用程式目錄：

   ```
   sudo AppStreamImageAssistant add-application \
   --name firefox \
   --absolute-app-path /usr/local/bin/firefox-jp.sh \
   --display-name firefox \
   --absolute-icon-path /usr/local/firefox/browser/chrome/icons/default/default128.png \
   --absolute-manifest-path /tmp/firefox-manifest.txt
   ```

或者，您也可以將指令碼 update-input-method.sh 作為個別應用程式新增至映像的應用程式目錄，藉此設定輸入法。在串流工作階段期間，您的使用者可以啟動此應用程式以啟用日文輸入，並在相同工作階段內使用指定的快速鍵切換輸入法。

## 步驟 5：設定鍵盤配置
<a name="tutorial-japense-keyboard"></a>

設定鍵盤配置，以符合使用者在串流工作階段期間將使用的鍵盤。例如，您可以使用 **localectl list-keymaps** 命令列出所有可用的鍵盤映射，並使用 **sudo localectl set-keymap jp106** 命令將鍵盤映射設定為 106 個按鍵的日文鍵盤。

## 步驟 6：在映像建置器上驗證
<a name="tutorial-japense-verify"></a>

若要在映像建置器上進行驗證，請先執行命令 **sudo shutdown -r now** 以重新啟動映像建置器。重新啟動後，再次連線至映像建置器，並確認所有項目 (包括時區、地區設定、語言和輸入法) 都如預期運作。

## 步驟 7：建立映像
<a name="tutorial-japanese-create"></a>

在映像建置器上建立映像。如需詳細資訊，請參閱[教學課程：建立自訂 Linux 型 WorkSpaces 應用程式映像](tutorial-create-linux-image.md)。務必建立預設應用程式設定，包括您剛才設定的區域設定。如需詳細資訊，請參閱 [建立 Linux 型映像](create-linux-based-images.md) 中的「為您的使用者建立預設應用程式設定」。

從此映像建立的所有 Linux 機群執行個體都將具有相同的預設時區、地區設定、語言和輸入法設定，並且與映像的設定相同。