

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

# 應用程式加入準則
<a name="onboarding-applications"></a>

在您透過 WorkSpaces 應用程式將應用程式提供給最終使用者之前，請驗證應用程式在 WorkSpaces 應用程式雲端環境中是否正常運作、確認應用程式可在不轉譯成品的情況下串流，以及根據應用程式的資源設定檔適當調整機群大小。此頁面提供結構化入門檢查清單，可供您針對計劃串流的每個應用程式遵循。如果您打算使用多工作階段，您需要特別注意在同一主機上執行多個應用程式版本的能力。如果您打算使用[原生應用程式模式](https://docs.aws.amazon.com/appstream2/latest/developerguide/feature-support-native-application-mode.html)，則需要確認應用程式未顯示此模式的任何相容性問題。

無論您是加入新的應用程式，還是從另一個交付模型遷移現有的應用程式，這些準則都適用。

## 加入程序概觀
<a name="onboarding-overview"></a>

將應用程式加入 WorkSpaces 應用程式有兩個平行軌道：
+ **應用程式相容性驗證：**確認應用程式在串流環境中對使用者所依賴功能的正確行為。
+ **執行個體大小和容量規劃：**選擇符合應用程式的 CPU、記憶體和 GPU 設定檔的執行個體類型和機群擴展政策，以及您預期的並行使用者計數。

我們建議您先完成相容性驗證 （在映像建置器和試行機群上），然後使用該驗證的測量結果來推動執行個體大小調整決策。

## 第 1 部分：應用程式相容性驗證
<a name="onboarding-compatibility"></a>

### 一般相容性
<a name="onboarding-general-compat"></a>

WorkSpaces 應用程式會依下列順序建立串流工作階段：

1. 使用者的用戶端會連線至串流執行個體。

1. 使用者會登入執行個體上的伺服器作業系統工作階段。

1. 應用程式已啟動。

1. 串流工作階段開始時，會套用取決於用戶端的環境設定 （例如用戶端顯示器解析度、DPI、用戶端時區和用戶端重新導向的裝置，例如印表機）。

由於用戶端相依環境設定會在應用程式啟動*後*套用，因此在啟動期間只讀取這些值一次的應用程式不會對使用者的實際用戶端組態做出反應。驗證下列項目：
+ 應用程式會在啟動後讀取或訂閱顯示解析度、DPI 和時區變更，**或者**您使用用戶端連線之前符合使用者人口的預設值來設定串流執行個體。
+ 應用程式可容忍使用者的本機時區與串流執行個體的時區不同。
+ 當用戶端中斷連線並在工作階段中重新連線時，應用程式不會失敗或停止回應。

### 多工作階段相容性
<a name="onboarding-multi-session-compat"></a>

如果您計劃在多工作階段機群上執行應用程式，請在映像建置器和具有兩個或更多並行使用者的試行機群上驗證下列項目：
+ 應用程式的授權允許單一伺服器執行個體上的並行多使用者工作階段。某些應用程式的每個裝置或每個使用者授權明確禁止此組態。
+ 使用者設定檔、應用程式設定和使用者資料會在工作階段之間隔離。測試一個使用者所做的變更對另一個並行使用者來說不可見。
+ 使用者特定資料會寫入每個使用者的位置，例如 `%APPDATA%`和 `%LOCALAPPDATA%`，而不是寫入共用目錄，例如 `C:\Program Files`或 `C:\ProgramData`。
+ 應用程式不會依賴所有工作階段共用的系統服務，或者此類服務可以正確處理多個並行工作階段。
+ 應用程式不包含假設單一使用者環境的硬式編碼路徑。
+ 系統裝置對話方塊只會列舉目前使用者重新導向的裝置，例如掃描器和印表機，而不是伺服器可見的所有裝置。
+ 檔案開啟並儲存對話方塊可正確解析目前使用者的映射用戶端磁碟機和重新導向資料夾。
+ 使用者登入時，應用程式的安裝程式、更新程式和任何背景程序都不需要互動式管理員存取權。

**注意**  
多工作階段機群目前不支援網路攝影機、[動態應用程式架構](https://docs.aws.amazon.com/appstream2/latest/developerguide/dynamic-app-framework.html)和[智慧卡身分驗證](https://docs.aws.amazon.com/appstream2/latest/developerguide/active-directory-prerequisites-smart-card-authentication.html)。如果您需要任何這些功能，建議您使用單一工作階段機群。

### 原生應用程式模式相容性
<a name="onboarding-native-app-mode"></a>

原生應用程式模式會使用自己的工作列圖示，將每個遠端應用程式串流為使用者本機裝置上的個別視窗。在傳統模式中正常運作的應用程式在原生應用程式模式中的行為可能不同，因為視窗管理、焦點和轉譯的處理方式不同。如需 功能的概觀，請參閱[原生應用程式模式](https://docs.aws.amazon.com/appstream2/latest/developerguide/feature-support-native-application-mode.html)。

在映像建置器和試行機群上，以原生應用程式模式驗證下列項目：
+ **視窗顯示：**所有應用程式視窗，包括對話方塊、啟動畫面和模態提示，正確顯示並可與其互動。請特別注意手動繪製的視窗，而不是標準 Windows UI 工具組 （例如，出現在主視窗之前的自訂轉譯啟動畫面或啟動對話方塊）。這些更有可能發生相容性問題。
+ **透明或非矩形視窗：**檢查是否有任何具有透明區域或具有圓角或非矩形形狀的視窗 （例如，氣球提示、自訂工具提示或貼皮視窗）。這些可能無法在原生應用程式模式下正確轉譯。
+ **系統匣：**原生應用程式模式中目前不支援需要 Windows 通知區域 （系統匣） 的應用程式。如果您的應用程式僅針對次要功能使用匣圖示，請確認核心工作流程在匣無法使用時仍可運作。
+ **DPI 意識：**串流工作階段可能會以與本機用戶端不同的解析度和 DPI 設定執行。如果應用程式不具備 DPI 感知，Windows 本身會擴展輸出，導致渲染模糊。在至少一個具有非 100% DPI 擴展的用戶端上進行測試 （例如，125% 或 150% 的高 DPI 筆記型電腦）。
+ **多視窗工作流程：**測試跨越多個應用程式時段的工作流程 （例如，在主視窗和模態對話方塊之間切換，或在個別視窗中開啟的兩個文件之間切換）。確認焦點轉換和任務列click-to-activate如預期的行為。
+ **Alt\+Tab 和工作列行為：**使用 Alt\+Tab 和按一下工作列圖示，在應用程式和其他本機應用程式之間切換。遠端應用程式應到達前景，而不攜帶不相關的遠端視窗。
+ **模態對話方塊：**在遠端應用程式中開啟模態對話方塊時，基礎遠端視窗應正確指出已停用，並按一下它應閃爍或啟用模態。
+ **列印工作流程：**從應用程式內列印 ，並確認列印對話方塊可見 （不會隱藏在主視窗後方），且重新導向的印表機已列舉。某些印表機驅動程式顯示的列印對話方塊可能會連接到錯誤的視窗。如果您觀察到此情況，請考慮使用 **DCV PDF 印表機**，而非 **Microsoft Print to PDF**。
+ **瀏覽器標籤停駐：**當使用者嘗試在原生應用程式模式下的串流工作階段期間，將某個瀏覽器視窗中的標籤停駐或取消停駐至個別視窗時，遠端串流瀏覽器的運作方式與本機瀏覽器不同。使用者必須按下 Alt 鍵，直到標籤停駐在不同的瀏覽器視窗中。如果您的使用者依賴頻繁的索引標籤取消停駐，請針對此行為規劃使用者訓練。
+ **模式切換：**測試如果使用者在工作階段期間切換原生應用程式模式和傳統模式，應用程式是否繼續運作。

我們建議使用試行使用者群組開始原生應用程式模式驗證，並在完全部署之前記錄任何應用程式特定的限制。應用程式行為和效能可能因串流模式而異，因此傳統模式的測試無法取代原生應用程式模式的測試。

### 檔案處理和重新導向
<a name="onboarding-file-handling"></a>
+ 從 和 開啟並儲存檔案至映射的用戶端磁碟機和重新導向的資料夾。
+ 如果應用程式使用暫存檔案，請確認它們已寫入每個使用者暫存目錄。
+ 如果您的使用者使用的檔案大於串流工作階段處理的典型大小，請透過工作階段的檔案傳輸機制測試大型檔案操作。

### 列印
<a name="onboarding-printing"></a>
+ 測試列印到使用者將使用的每個重新導向印表機類型 （網路印表機、Microsoft Print to PDF、如 DCV PDF 印表機等 PDF 印表機驅動程式，以及第三方重新導向印表機）。
+ 從具有列印工作流程的每個應用程式測試列印，包括內嵌 Web 內容的應用程式 （例如以 Chromium 為基礎的檢視）。
+ 在原生應用程式模式中驗證列印對話方塊行為 （請參閱上一節）。

### 本機裝置互動
<a name="onboarding-local-devices"></a>
+ 音訊輸入和輸出 （麥克風、喇叭和耳機）。
+ 網路攝影機，如果應用程式使用。
+ 如果應用程式使用 USB 裝置重新導向。如需支援[的裝置清單，請參閱 USB 裝置重新導向](https://docs.aws.amazon.com/appstream2/latest/developerguide/feature-support-USB-devices-qualified.html)。
+ 智慧卡身分驗證，如果應用程式需要的話。

### 網路效能
<a name="onboarding-network-perf"></a>
+ 測量代表您最壞情況使用者的網路連線的應用程式回應能力 （例如，消費者寬頻連線上的遠端使用者，往返時間為 100 毫秒）。串流工作階段對往返時間和封包遺失非常敏感。
+ 驗證應用程式是否容忍短暫的網路中斷和工作階段重新連線。

### 多監視器支援
<a name="onboarding-multi-monitor"></a>
+ 在用戶端上測試跨越多個監視器的工作流程。
+ 如果應用程式讀取監視器幾何，請確認它讀取用戶端的監視器配置，而不是串流執行個體的配置。

### 音訊和視訊功能
<a name="onboarding-audio-video"></a>

即時音訊視訊案例 （內嵌在應用程式中的語音、視訊會議和協同合作工具） 需要更高的影格率，而且可能需要更大的執行個體類型。請參閱 [第 2 部分：執行個體大小和容量規劃](#onboarding-sizing)。

### 驗證環境
<a name="onboarding-validation-env"></a>

請先在映像建置器上執行本節中的檢查，然後在具有一小群代表性使用者的機群上執行檢查，然後再將映像轉出至您的完整使用者基礎。請勿依賴傳統模式測試來取代native-application-mode測試。

## 第 2 部分：執行個體大小和容量規劃
<a name="onboarding-sizing"></a>

### 選擇執行個體系列
<a name="onboarding-instance-family"></a>

根據應用程式的資源描述檔選取執行個體系列。如需硬體規格和定價，請參閱 [WorkSpaces 應用程式執行個體系列](https://docs.aws.amazon.com/appstream2/latest/developerguide/instance-types.html)和 [WorkSpaces 應用程式定價](https://aws.amazon.com/appstream2/pricing/)。


| 應用程式設定檔 | 建議的執行個體系列 | 
| --- | --- | 
| Office、網頁瀏覽器、大多數line-of-business應用程式 | 一般用途 | 
| 運算密集型應用程式 （繁重的用戶端運算、本機分析） | 運算最佳化 | 
| 記憶體密集型應用程式 （記憶體中的大型資料集、記憶體內資料庫） | 記憶體最佳化 | 
| 使用 DirectX、OpenGL 或 OpenCL 的圖形應用程式 | 圖形 G4dn、G5 或 G6 系列 | 
| 適用於high-frame-rate案例的即時音訊視訊 | 在您選擇的系列中擴展執行個體大小；如果應用程式也使用 GPU 加速，請考慮使用 Graphics 系列執行個體 | 

每個 WorkSpaces 應用程式執行個體都有一個 200 GB 固定大小的 C 磁碟機，會在每個使用者工作階段後刪除。請勿倚賴執行個體本機儲存進行使用者資料；請使用主資料夾、檔案共用或設定檔管理進行持久性。

### 為單一使用者調整執行個體的大小
<a name="onboarding-single-user-sizing"></a>

在調整並行使用者的規模之前，請測量單一工作階段的應用程式資源使用量：
+ 在您選擇的系列中佈建最小執行個體大小的映像建置器，以符合應用程式的聲明最低需求。
+ 以單一使用者身分登入，並端對端執行代表性的工作負載。包含將在串流工作階段中執行的所有相依性 （例如背景同步用戶端、安全代理程式和設定檔管理用戶端）。
+ 使用 Windows Performance Monitor 或同等工具測量：尖峰和持續的 CPU 使用、尖峰和持續的工作集 （私有位元組） 記憶體使用、磁碟 I/O 速率，以及適用的 GPU 使用和影片記憶體。
+ 如果尖峰 CPU 在正常工作流程期間超過大約 80% 或尖峰記憶體超過大約 75% 的執行個體容量，請移至下一個執行個體大小。
+ 為 Windows Server 作業系統、WorkSpaces 應用程式代理程式、Amazon DCV、反惡意軟體和任何其他管理代理程式預留空間。經驗法則是為單一工作階段執行個體的基本系統額外負荷預留大約 1 個 vCPU 和 1 GB 的記憶體。

### 多工作階段機群的大小
<a name="onboarding-multi-session-sizing"></a>

多工作階段機群會在單一 Windows Server 執行個體上同時執行多個使用者。每個執行個體支援的最多使用者數量取決於執行個體大小和應用程式的資源描述檔。
+ 從單一使用者測量開始 （從上一節）。
+ 根據應用程式的行為套用並行乘數。對於具有主要閒置資源描述檔 （例如，以互動方式使用的辦公室應用程式） 的應用程式，規劃彙總 CPU 和記憶體使用量，以大致線性方式隨著使用者計數進行擴展，但由於共用作業系統額外負荷而減少 20–30%。對於具有持續作用中資源描述檔的應用程式 （例如，執行繁重 Web 應用程式的資料處理工具或瀏覽器），請規劃幾乎線性擴展而不減少。
+ 將每個執行個體的候選使用者上限計算為：

```
max_users_per_instance = min(
    (instance_vcpus - 1) / peak_single_user_vcpus_under_concurrency,
    (instance_memory_gb - 1) / peak_single_user_memory_gb_under_concurrency
)
```
+ 驗證實際多工作階段試行中的候選值。使用候選數量的並行使用者執行測試 （例如，使用負載產生工具或實際試用使用者）。監控 CPU 使用 （目標小於 80% 峰值，小於 70% 持續）、可用的記憶體 （目標大於峰值總和的 15%)、磁碟佇列長度 （目標小於 2 持續） 和 DCV 工作階段回應能力 （主觀 — 工作階段是否感覺互動？)。
+ 如果試行目標失敗，請將每個執行個體的最大使用者數減少一個，然後重新測試。如果試行程式順利通過，您可以將每個執行個體的最大使用者數增加一個並重新測試，或為工作負載尖峰預留空間。

### 設定機群擴展
<a name="onboarding-fleet-scaling"></a>

在您了解每個執行個體的最大使用者數之後，請根據您預期的並行使用者計數設定機群擴展。如需完整的機制，請參閱 [Fleet Auto Scaling for WorkSpaces 應用程式](https://docs.aws.amazon.com/appstream2/latest/developerguide/autoscaling.html)。本節摘要說明您在加入時應做出的決策。
+ **最小容量。**根據工作時間內預期的最低並行使用者計數進行設定，除以每個執行個體的使用者。每個執行個體的佈建需要幾分鐘，因此最小容量為零或值太低可能會導致使用者在工作日開始時等待執行個體啟動。對於可預測的上午漸進測試，請使用**排程擴展政策**在工作日開始之前增加最小容量，並在工作日結束之前減少容量。
+ **最大容量。**設定為上限，以考慮尖峰並行使用者加上安全界限。尖峰通常是上班時間平均值的 1.2–1.5 倍，但測量您自己的流量以準確設定。
+ **目標使用率。**對於具有不可預測需求的機群，請使用**目標追蹤擴展政策**。選擇目標使用率，以便在 15 分鐘內`100% - target utilization`超過預期的使用者周轉率 （流失）。例如，如果 10% 的使用者在任何 15 分鐘時段內開始和結束工作階段，請將目標設定為 90% 或更低。如需詳細資訊，請參閱白皮書中的[擴展政策設計的最佳實務](https://docs.aws.amazon.com/whitepapers/latest/best-practices-for-deploying-amazon-appstream-2/best-practices-for-scaling-policy-design.html)。
+ **InsufficientCapacityError 警示。**在每個機群的 `InsufficientCapacityError` 指標上建立 Amazon CloudWatch 警示，以便在自動擴展無法跟上需求時提醒管理員。

### 使用試行方案驗證end-to-end
<a name="onboarding-pilot"></a>

在將應用程式推展給所有使用者之前，請執行具有 10-50 個使用者的試行課程至少一個完整一週。在試行期間：
+ 確認在實際使用者工作負載下保留第 1 部分的應用程式相容性驗證結果。
+ 確認所選執行個體大小支援每個執行個體觀察到的尖峰並行使用者。
+ 確認機群擴展政策在沒有`InsufficientCapacityError`事件的情況下處理start-of-day漸進和end-of-day漸進。
+ 從試行使用者收集有關工作階段回應能力和應用程式行為的意見回饋。

## 加入檢查清單
<a name="onboarding-checklist"></a>

使用此檢查清單來追蹤您加入的每個應用程式的狀態。

**應用程式相容性**
+ 應用程式授權允許預期的部署 （單一工作階段或多工作階段、並行使用者）。
+ 一般相容性檢查通過 （應用程式啟動後套用的用戶端相依設定）。
+ 多工作階段相容性檢查通過 （如果以多工作階段機群為目標）。
+ 原生應用程式模式檢查通過 （視窗、對話方塊、匣、DPI、焦點、列印和模式切換）。
+ 檔案處理和重新導向檢查通過。
+ 針對使用者將使用的所有重新導向印表機類型進行驗證的列印工作流程。
+ 針對使用者將使用的所有裝置進行驗證的本機裝置互動 （音訊、網路攝影機、USB 和智慧卡）。
+ 多監視器工作流程已驗證。

**執行個體大小和容量**
+ 根據應用程式資源描述檔選擇的執行個體系列。
+ 在 Image Builder 上測量的單一使用者資源使用量。
+ 多工作階段試行中每個執行個體計算和驗證的使用者上限 （如適用）。
+ 已設定的機群擴展政策 （最小容量、最大容量、目標使用率或排程擴展）。
+ `InsufficientCapacityError` 警示已設定。

**試行和推展**
+ 使用 10-50 位使用者執行試點至少一週。
+ 已檢閱試行意見回饋並解決任何封鎖問題。
+ 記錄用於最終使用者訓練的應用程式 （包括任何原生應用程式模式的已知行為，例如透過 Alt 金鑰停駐的瀏覽器標籤）。
+ 與利益相關者商定的推展計畫。