本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
發行 RunBooks
下一節包含可能發生的問題、如何偵測問題,以及如何解決問題的建議。
安裝問題
主題
........................
AWS CloudFormation 堆疊無法建立 ,並顯示訊息「WaitCondition 收到失敗的訊息。Error:States.TaskFailed"
若要識別問題,請檢查名為 的 Amazon CloudWatch 日誌群組<stack-name>-InstallerTasksCreateTaskDefCreateContainerLogGroup<nonce>-<nonce>
。如果有多個具有相同名稱的日誌群組,請檢查第一個可用的日誌群組。日誌中的錯誤訊息將提供有關問題的詳細資訊。
注意
確認參數值沒有空格。
........................
堆疊建立成功後 AWS CloudFormation 未收到電子郵件通知
如果在成功建立 AWS CloudFormation 堆疊後未收到電子郵件邀請,請確認下列事項:
-
確認電子郵件地址參數輸入正確。
如果電子郵件地址不正確或無法存取,請刪除並重新部署 Research and Engineering Studio 環境。
-
檢查 Amazon EC2 主控台是否有循環執行個體的證據。
如果 Amazon EC2 執行個體的
<envname>
字首顯示為已終止,然後以新的執行個體取代,則網路或 Active Directory 組態可能會出現問題。 -
如果您已部署 AWS 高效能運算配方來建立外部資源,請確認堆疊已建立 VPC、私有和公有子網路,以及其他選取的參數。
如果任何參數不正確,您可能需要刪除並重新部署 RES 環境。如需詳細資訊,請參閱解除安裝產品。
-
如果您使用自己的外部資源部署產品,請確認聯網和 Active Directory 符合預期的組態。
確認基礎設施執行個體成功加入 Active Directory 至關重要。嘗試 中的步驟執行個體循環或處於失敗狀態的 vdc-controller來解決問題。
........................
執行個體循環或處於失敗狀態的 vdc-controller
此問題最可能的原因是資源無法連線或加入 Active Directory (Active Directory)。
若要驗證問題:
-
從命令列,在 vdc-controller 的執行中執行個體上使用 SSM 啟動工作階段。
-
執行
sudo su -
。 -
執行
systemctl status sssd
。
如果狀態為非作用中、失敗或您在日誌中看到錯誤,則執行個體無法加入 Active Directory。

SSM 錯誤日誌
若要解決問題:
-
從相同的命令列執行個體執行
cat /root/bootstrap/logs/userdata.log
以調查日誌。
此問題可能有三種可能的根本原因之一。
檢閱日誌。如果您看到下列重複多次,則執行個體無法加入 Active Directory。
+ local AD_AUTHORIZATION_ENTRY= + [[ -z '' ]] + [[ 0 -le 180 ]] + local SLEEP_TIME=34 + log_info '(0 of 180) waiting for AD authorization, retrying in 34 seconds ...' ++ date '+%Y-%m-%d %H:%M:%S,%3N' + echo '[2024-01-16 22:02:19,802] [INFO] (0 of 180) waiting for AD authorization, retrying in 34 seconds ...' [2024-01-16 22:02:19,802] [INFO] (0 of 180) waiting for AD authorization, retrying in 34 seconds ... + sleep 34 + (( ATTEMPT_COUNT++ ))
-
確認 RES 堆疊建立期間已正確輸入下列項目的參數值。
-
directoryservice.ldap_connection_uri
-
directoryservice.ldap_base
-
directoryservice.users.ou
-
directoryservice.groups.ou
-
directoryservice.sudoers.ou
-
directoryservice. computers.ou
-
directoryservice.name
-
-
更新 DynamoDB 資料表中的任何不正確值。資料表可在 DynamoDB 主控台的資料表下找到。資料表名稱應為
。<stack name>
.cluster-settings -
更新資料表後,請刪除目前執行環境執行個體的 cluster-manager 和 vdc-controller。自動擴展將使用來自 DynamoDB 資料表的最新值啟動新的執行個體。
如果日誌傳回 Insufficient permissions to modify computer account
,則在堆疊建立期間輸入的 ServiceAccount 名稱可能不正確。
-
從 AWS 主控台開啟 Secrets Manager。
-
搜尋
directoryserviceServiceAccountUsername
。秘密應為
。<stack name>
-directoryservice-ServiceAccountUsername -
開啟秘密以檢視詳細資訊頁面。在秘密值下,選擇擷取秘密值,然後選擇純文字。
-
如果該值已更新,請刪除目前執行環境的 cluster-manager 和 vdc-controller 執行個體。自動擴展將使用 Secrets Manager 的最新值啟動新執行個體。
如果日誌顯示 Invalid credentials
,則在堆疊建立期間輸入的 ServiceAccount 密碼可能不正確。
-
從 AWS 主控台開啟 Secrets Manager。
-
搜尋
directoryserviceServiceAccountPassword
。秘密應為
。<stack name>
-directoryservice-ServiceAccountPassword -
開啟秘密以檢視詳細資訊頁面。在秘密值下,選擇擷取秘密值,然後選擇純文字。
-
如果您忘記密碼,或不確定輸入的密碼是否正確,您可以在 Active Directory 和 Secrets Manager 中重設密碼。
-
若要在 中重設密碼 AWS Managed Microsoft AD:
-
開啟 AWS 主控台並前往 AWS Directory Service。
-
選取 RES 目錄的目錄 ID,然後選擇動作。
-
選擇重設使用者密碼。
-
輸入 ServiceAccount 使用者名稱。
-
輸入新密碼,然後選擇重設密碼。
-
-
若要在 Secrets Manager 中重設密碼:
-
開啟 AWS 主控台並前往 Secrets Manager。
-
搜尋
directoryserviceServiceAccountPassword
。秘密應為
。<stack name>
-directoryservice-ServiceAccountPassword -
開啟秘密以檢視詳細資訊頁面。在秘密值下,選取擷取秘密值,然後選擇純文字。
-
選擇 Edit (編輯)。
-
為 ServiceAccount 使用者設定新密碼,然後選取儲存。
-
-
-
如果您更新了 值,請刪除目前執行環境的 cluster-manager 和 vdc-controller 執行個體。自動擴展將使用最新的值啟動新的執行個體。
........................
由於相依物件錯誤,環境 CloudFormation 堆疊無法刪除
如果
CloudFormation 堆疊的刪除因相依物件錯誤而失敗,例如 <env-name>
-vdcvdcdcvhostsecuritygroup
,這可能是因為使用主控台在 RES 建立的子網路或安全群組中啟動的 Amazon EC2 AWS 執行個體所致。
若要解決問題,請尋找並終止以這種方式啟動的所有 Amazon EC2 執行個體。然後,您可以繼續刪除環境。
........................
環境建立期間 CIDR 區塊參數發生錯誤
建立環境時,會出現回應狀態為 【FAILED】 的 CIDR 區塊參數錯誤。
錯誤範例:
Failed to update cluster prefix list: An error occurred (InvalidParameterValue) when calling the ModifyManagedPrefixList operation: The specified CIDR (52.94.133.132/24) is not valid. For example, specify a CIDR in the following form: 10.0.0.0/16.
若要解決問題,預期的格式為 x.x.x.0/24 或 x.x.x.0/32。
........................
環境建立期間的 CloudFormation 堆疊建立失敗
建立環境涉及一系列的資源建立操作。在某些區域中,可能會發生容量問題,導致 CloudFormation 堆疊建立失敗。
如果發生這種情況,請刪除環境並重試建立。或者,您可以在不同的區域中重試建立。
........................
使用 AdDomainAdminNode CREATE_FAILED 建立外部資源 (示範) 堆疊失敗
如果示範環境堆疊建立失敗並出現下列錯誤,可能是因為執行個體啟動後佈建期間意外發生 Amazon EC2 修補。
AdDomainAdminNode CREATE_FAILED Failed to receive 1 resource signal(s) within the specified duration
若要判斷失敗的原因:
-
在 SSM 狀態管理員中,檢查是否已設定修補,以及是否已針對所有執行個體設定修補。
-
在 SSM RunCommand/Automation 執行歷史記錄中,檢查修補相關 SSM 文件的執行是否與執行個體啟動一致。
-
在環境 Amazon EC2 執行個體的日誌檔案中,檢閱本機執行個體日誌,以判斷執行個體是否在佈建期間重新啟動。
如果問題是由修補造成,請在啟動後至少 15 分鐘延遲 RES 執行個體的修補。
........................
身分管理問題
單一登入 (SSO) 和身分管理的大多數問題都是因為組態錯誤而發生。如需設定 SSO 組態的資訊,請參閱:
若要疑難排解與身分管理相關的其他問題,請參閱下列疑難排解主題:
主題
........................
我未獲得執行 iam:PassRole 的授權
如果您收到錯誤,告知您無權執行 iam:PassRole 動作,您的政策必須更新,以允許您將角色傳遞至 RES。
有些 AWS 服務可讓您將現有角色傳遞給該服務,而不是建立新的服務角色或服務連結角色。如需執行此作業,您必須擁有將角色傳遞至該服務的許可。
當名為 marymajor 的 IAM 使用者嘗試使用主控台在 RES 中執行動作時,會發生下列範例錯誤。但是,動作請求服務具備服務角色授予的許可。Mary 沒有將角色傳遞至該服務的許可。
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
在這種情況下,Mary 的政策必須更新,以允許她執行 iam:PassRole 動作。如果您需要協助,請聯絡您的 AWS 管理員。您的管理員提供您的簽署憑證。
........................
我想要允許 AWS 帳戶外的人員存取我的 Research and Engineering Studio on AWS 資源
您可以建立一個角色,讓其他帳戶中的使用者或您組織外部的人員存取您的資源。您可以指定要允許哪些信任物件取得該角色。針對支援基於資源的政策或存取控制清單 (ACL) 的服務,您可以使用那些政策來授予人員存取您的資源的許可。
如需進一步了解,請參閱以下內容:
-
若要了解如何在您擁有 AWS 的帳戶中提供資源的存取權,請參閱《IAM 使用者指南》中的為您擁有的另一個 AWS 帳戶中的 IAM 使用者提供存取權。
-
若要了解如何將資源的存取權提供給第三方 AWS 帳戶,請參閱《IAM 使用者指南》中的將存取權提供給第三方擁有 AWS 的帳戶。
-
若要了解如何透過聯合身分提供存取權,請參閱《IAM 使用者指南》中的提供存取權給外部驗證的使用者 (聯合身分)。
-
若要了解使用角色和資源型政策進行跨帳戶存取之間的差異,請參閱《IAM 使用者指南》中的 IAM 角色與資源型政策的差異。
........................
登入環境時,我立即返回登入頁面
當您的 SSO 整合設定錯誤時,就會發生此問題。若要判斷問題,請檢查控制器執行個體日誌並檢閱組態設定是否有錯誤。
若要檢查日誌:
-
開啟 CloudWatch 主控台
。 -
從日誌群組中,尋找名為 的群組
/
。<environment-name>
/cluster-manager -
開啟日誌群組以搜尋日誌串流中的任何錯誤。
若要檢查組態設定:
-
開啟 DynamoDB 主控台
-
從資料表中,尋找名為 的資料表
。<environment-name>
.cluster-settings -
開啟資料表,然後選取探索資料表項目。
-
展開篩選條件區段,然後輸入下列變數:
-
屬性名稱 – 索引鍵
-
條件 – 包含
-
值 – sso
-
-
選取執行。
-
在傳回的字串中,驗證 SSO 組態值是否正確。如果不正確,請將 sso_enabled 金鑰的值變更為 False。
-
返回 RES 使用者介面以重新設定 SSO。
........................
嘗試登入時發生「找不到使用者」錯誤
如果使用者嘗試登入 RES 介面時收到錯誤「找不到使用者」,且使用者出現在 Active Directory 中:
-
如果使用者不存在於 RES 中,且您最近將使用者新增至 AD
-
使用者可能尚未同步到 RES。RES 每小時同步一次,因此您可能需要等待,並檢查使用者是否在下一次同步後新增。若要立即同步,請遵循中的步驟在 Active Directory 中新增使用者,但 RES 中遺失。
-
-
如果使用者存在於 RES 中:
-
確定屬性映射已正確設定。如需詳細資訊,請參閱為單一登入 (SSO) 設定您的身分提供者。
-
確保 SAML 主旨和 SAML 電子郵件都對應到使用者的電子郵件地址。
-
........................
在 Active Directory 中新增使用者,但 RES 中遺失
如果您已將使用者新增至 Active Directory,但在 RES 中缺少使用者,則需要觸發 AD 同步。AD 同步是由將 AD 項目匯入 RES 環境的 Lambda 函數每小時執行。有時候,在您新增使用者或群組之後,會延遲到下一個同步程序執行為止。您可以從 Amazon Simple Queue Service 手動啟動同步。
手動啟動同步程序:
-
開啟 Amazon SQS 主控台
。 -
從佇列中,選取
<environment-name>-cluster-manager-tasks.fifo
。 -
選取傳送和接收訊息。
-
在訊息內文中,輸入:
{ "name": "adsync.sync-from-ad", "payload": {} }
-
針對訊息群組 ID,輸入:
adsync.sync-from-ad
-
針對訊息重複資料刪除 ID,輸入隨機的英數字元字串。此項目必須與前五分鐘內進行的所有呼叫不同,否則請求將被忽略。
........................
建立工作階段時無法使用使用者
如果您是建立工作階段的管理員,但發現在建立工作階段時無法使用 Active Directory 中的使用者,則使用者可能需要第一次登入。只能為作用中使用者建立工作階段。作用中使用者必須至少登入環境一次。
........................
CloudWatch cluster-manager 日誌中超出大小限制的錯誤
2023-10-31T18:03:12.942-07:00 ldap.SIZELIMIT_EXCEEDED: {'msgtype': 100, 'msgid': 11, 'result': 4, 'desc': 'Size limit exceeded', 'ctrls': []}
如果您在 CloudWatch cluster-manager 日誌中收到此錯誤,ldap 搜尋可能已傳回太多使用者記錄。若要修正此問題,請提高 IDP 的 ldap 搜尋結果限制。
........................
儲存
主題
........................
我透過 RES 建立檔案系統,但未掛載在 VDI 主機上
檔案系統必須處於「可用」狀態,才能由 VDI 主機掛載。請依照下列步驟驗證檔案系統是否處於必要狀態。
Amazon EFS
-
前往 Amazon EFS 主控台
。 -
檢查檔案系統狀態是否可用。
-
如果檔案系統狀態不可用,請等待 再啟動 VDI 主機。
-
前往 Amazon FSx 主控台
。 -
檢查狀態是否可用。
-
如果狀態不可用,請等待 再啟動 VDI 主機。
........................
我透過 RES 加入檔案系統,但未掛載在 VDI 主機上
在 RES 上加入的檔案系統應設定必要的安全群組規則,以允許 VDI 主機掛載檔案系統。由於這些檔案系統是在 RES 外部建立,RES 不會管理相關聯的安全群組規則。
與加入的檔案系統相關聯的安全群組應允許下列傳入流量:
來自 linux VDC 主機的 NFS 流量 (連接埠:2049)
來自 Windows VDC 主機的 SMB 流量 (連接埠:445)
........................
我無法從 VDI 主機讀取/寫入
ONTAP 支援磁碟區的 UNIX、NTFS 和 MIXED 安全樣式。安全樣式決定 ONTAP 用於控制資料存取的許可類型,以及哪些用戶端類型可以修改這些許可。
例如,如果磁碟區使用 UNIX 安全樣式,由於 ONTAP 的多協定本質,SMB 用戶端仍然可以存取資料 (前提是他們正確驗證和授權)。不過,ONTAP 使用 UNIX 許可,只有 UNIX 用戶端可以使用原生工具修改。
處理使用案例的許可範例
搭配 Linux 工作負載使用 UNIX 樣式磁碟區
sudoer 可以為其他使用者設定許可。例如,以下內容會授予/<project-name>
目錄上所有<group-ID>
完整讀取/寫入許可的成員:
sudo chown root:
<group-ID>
/<project-name>
sudo chmod 770 /<project-name>
搭配 Linux 和 Windows 工作負載使用 NTFS 樣式磁碟區
您可以使用特定資料夾的共用屬性來設定共用許可。例如,指定使用者user_01
和資料夾 myfolder
,您可以將 Full Control
、 Change
或 的許可設定為 Read
Allow
或 Deny
:

如果 Linux 和 Windows 用戶端都會使用磁碟區,我們需要在 SVM 上設定名稱映射,該映射會將任何 Linux 使用者名稱與相同的使用者名稱與 domain\username 的 NetBIOS 網域名稱格式建立關聯。這在 Linux 和 Windows 使用者之間進行翻譯時需要用到。如需參考,請參閱使用 Amazon FSx for NetApp ONTAP 啟用多協定工作負載
........................
我從 RES 建立 Amazon FSx for NetApp ONTAP,但未加入我的網域
目前,當您從 RES 主控台建立 Amazon FSx for NetApp ONTAP 時,系統會佈建檔案系統,但不會加入網域。若要將建立的 ONTAP 檔案系統 SVM 加入您的網域,請參閱將 SVMs 加入 Microsoft Active Directory 並遵循 Amazon FSx 主控台
加入網域後,請在叢集設定 DynamoDB 資料表中編輯 SMB DNS 組態金鑰:
-
選取資料表,然後選擇
<stack-name>-cluster-settings
。 -
在探索資料表項目下,展開篩選條件,然後輸入下列篩選條件:
屬性名稱 - 索引鍵
條件 - 等於
-
值 -
shared-storage.<file-system-name>.fsx_netapp_ontap.svm.smb_dns
-
選取傳回的項目,然後動作、編輯項目。
-
使用您先前複製的 SMB DNS 名稱更新值。
-
選取儲存並關閉。
此外,請確保與檔案系統相關聯的安全群組允許 Amazon VPC 檔案系統存取控制中建議的流量。使用檔案系統的新 VDI 主機現在可以掛載加入 SVM 和檔案系統的網域。
或者,您也可以使用 RES 加入檔案系統功能加入現有的檔案系統 - 從環境管理選取檔案系統、加入檔案系統。
........................
快照
........................
快照的狀態為失敗
在 RES 快照頁面上,如果快照的狀態為失敗,則可以前往叢集管理員的 Amazon CloudWatch 日誌群組來判斷錯誤發生的時間。
[2023-11-19 03:39:20,208] [INFO] [snapshots-service] creating snapshot in S3 Bucket: asdf at path s31 [2023-11-19 03:39:20,381] [ERROR] [snapshots-service] An error occurred while creating the snapshot: An error occurred (TableNotFoundException) when calling the UpdateContinuousBackups operation: Table not found: res-demo.accounts.sequence-config
........................
快照無法套用至指出資料表無法匯入的日誌。
如果從上一個 env 擷取的快照無法在新的 env 中套用,請查看叢集管理員的 CloudWatch 日誌以識別問題。如果問題提及未匯入必要的資料表雲端,請確認快照處於有效狀態。
-
下載 metadata.json 檔案,並確認各種資料表的 ExportStatus 具有 COMPLETED 狀態。確保各種資料表都有
ExportManifest
欄位集。如果您找不到上述欄位集,快照會處於無效狀態,且無法與套用快照功能搭配使用。 -
開始建立快照後,請確定快照狀態在 RES 中變為 COMPLETED。快照建立程序最多需要 5 到 10 分鐘。重新載入或重新檢視快照管理頁面,以確保快照已成功建立。這將確保建立的快照處於有效狀態。
........................
基礎設施
........................
沒有運作狀態良好執行個體的負載平衡器目標群組
如果 UI 中出現伺服器錯誤訊息等問題,或桌面工作階段無法連線,這可能表示基礎設施 Amazon EC2 執行個體發生問題。
判斷問題來源的方法,是先檢查 Amazon EC2 主控台是否有任何 Amazon EC2 執行個體似乎重複終止,並以新的執行個體取代。如果是這種情況,檢查 Amazon CloudWatch logs可能會決定原因。
另一種方法是檢查系統中的負載平衡器。如果 Amazon EC2 主控台上發現任何負載平衡器未顯示任何運作狀態良好的執行個體,則表示可能存在系統問題。
正常外觀的範例如下所示:

如果運作狀態項目為 0,表示沒有 Amazon EC2 執行個體可用於處理請求。
如果運作狀態不佳的項目為非 0,表示 Amazon EC2 執行個體可能正在循環。這可能是因為已安裝的應用程式軟體未通過運作狀態檢查。
如果運作狀態良好和運作狀態不佳的項目都是 0,表示網路可能設定錯誤。例如,公有和私有子網路可能沒有對應的 AZs。如果發生這種情況,主控台上可能會有其他文字,指出網路狀態存在。
........................
啟動虛擬桌面
........................
先前運作中的虛擬桌面無法再成功連線
如果桌面連線關閉或您無法再與其連線,問題可能是因為基礎 Amazon EC2 執行個體故障,或 Amazon EC2 執行個體可能在 RES 環境之外終止或停止。管理員 UI 狀態可能會繼續顯示就緒狀態,但嘗試連線失敗。
應使用 Amazon EC2 主控台來判斷執行個體是否已終止或停止。如果停止,請嘗試再次啟動。如果狀態終止,則必須建立另一個桌面。使用者主目錄上存放的任何資料,在新執行個體啟動時仍應可供使用。
如果先前失敗的執行個體仍然出現在 Admin UI 上,則可能需要使用 Admin UI 將其終止。
........................
我只能啟動 5 個虛擬桌面
使用者可以啟動的虛擬桌面數量預設限制為 5。管理員可以使用 Admin UI 進行變更,如下所示:
前往桌面設定。
選取伺服器索引標籤。
在 DCV 工作階段面板中,按一下右側的編輯圖示。
將每位使用者允許工作階段中的值變更為所需的新值。
選取提交。
重新整理頁面以確認新設定已就位。
........................
桌面 Windows 連線嘗試失敗,並顯示「連線已關閉。傳輸錯誤"
如果 Windows 桌面連線失敗,並顯示 UI 錯誤「連線已關閉。傳輸錯誤",原因可能是在 Windows 執行個體上建立憑證相關的 DCV 伺服器軟體發生問題。
Amazon CloudWatch 日誌群組<envname>/vdc/dcv-connection-gateway
可能會使用類似以下內容的訊息記錄連線嘗試錯誤:
Nov 24 20:24:27.631 DEBUG HTTP:Splicer Connection{id=9}: Websocket{session_id="1291e75f-7816-48d9-bbb2-7371b3b911cd"}: Resolver lookup{client_ip=Some(52.94.36.19) session_id="1291e75f-7816-48d9-bbb2-7371b3b911cd" protocol_type=WebSocket extension_data=None}:NoStrictCertVerification: Additional stack certificate (0): [s/n: 0E9E9C4DE7194B37687DC4D2C0F5E94AF0DD57E] Nov 24 20:25:15.384 INFO HTTP:Splicer Connection{id=21}:Websocket{ session_id="d1d35954-f29d-4b3f-8c23-6a53303ebc3f"}: Connection initiated error: unreachable, server io error Custom { kind: InvalidData, error: General("Invalid certificate: certificate has expired (code: 10)") } Nov 24 20:25:15.384 WARN HTTP:Splicer Connection{id=21}: Websocket{session_id="d1d35954-f29d-4b3f-8c23-6a53303ebc3f"}: Error in websocket connection: Server unreachable: Server error: IO error: unexpected error: Invalid certificate: certificate has expired (code: 10)
如果發生這種情況,解決方法是使用 SSM Session Manager 開啟與 Windows 執行個體的連線,並移除下列 2 個憑證相關檔案:
PS C:\Windows\system32\config\systemprofile\AppData\Local\NICE\dcv> dir Directory: C:\Windows\system32\config\systemprofile\AppData\Local\NICE\dcv Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 8/4/2022 12:59 PM 1704 dcv.key -a---- 8/4/2022 12:59 PM 1265 dcv.pem
這些檔案應該會自動重新建立,且後續的連線嘗試可能會成功。
如果此方法解決問題,而且如果 Windows 桌面的新啟動產生相同的錯誤,請使用建立軟體堆疊函數,使用重新產生的憑證檔案來建立固定執行個體的新 Windows 軟體堆疊。這可能會產生 Windows 軟體堆疊,可用於成功的啟動和連線。
........................
VDIs卡在佈建狀態
如果桌面啟動在 Admin UI 中仍處於佈建狀態,這可能是由於幾個原因所致。
若要判斷原因,請檢查桌面執行個體上的日誌檔案,並尋找可能導致問題的錯誤。本文件包含日誌檔案和 Amazon CloudWatch 日誌群組的清單,其中包含標記為實用日誌和事件資訊來源一節中的相關資訊。
以下是此問題的潛在原因。
-
使用的 AMI ID 已註冊為軟體堆疊,但 RES 不支援。
引導佈建指令碼無法完成,因為 AMI 沒有預期的組態或所需的工具。執行個體上的日誌檔案,例如
/root/bootstrap/logs/
Linux 執行個體,可能包含與此相關的實用資訊。從 AWS Marketplace 取得的 AMIs ID 可能無法用於 RES 桌面執行個體。它們需要測試以確認是否支援。 -
從自訂 AMI 啟動 Windows 虛擬桌面執行個體時,不會執行使用者資料指令碼。
根據預設,當 Amazon EC2 執行個體啟動時,使用者資料指令碼會執行一次。如果您從現有的虛擬桌面執行個體建立 AMI,然後向 AMI 註冊軟體堆疊,並嘗試使用此軟體堆疊啟動另一個虛擬桌面,則使用者資料指令碼不會在新的虛擬桌面執行個體上執行。
若要修正此問題,請在您用來建立 AMI 的原始虛擬桌面執行個體上,以管理員身分開啟 PowerShell 命令視窗,然後執行下列命令:
C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 –Schedule
然後從執行個體建立新的 AMI。您可以使用新的 AMI 來註冊軟體堆疊,並在之後啟動新的虛擬桌面。請注意,您也可以在保持佈建狀態的執行個體上執行相同的命令,並重新啟動執行個體以修正虛擬桌面工作階段,但當您從設定錯誤的 AMI 啟動另一個虛擬桌面時,將會再次遇到相同的問題。
........................
啟動後,VDIs會進入錯誤狀態
- 可能的問題 1:主檔案系統的 目錄適用於具有不同 POSIX 許可的使用者。
-
如果下列案例成立,這可能是您面臨的問題:
-
部署的 RES 版本為 2024.01 或更新版本。
-
在部署 RES 堆疊期間, 的 屬性
EnableLdapIDMapping
設定為True
。 -
在 RES 堆疊部署期間指定的主檔案系統用於 RES 2024.01 之前的版本,或在先前環境中使用,並將
EnableLdapIDMapping
設定為False
。
解決步驟:刪除 檔案系統中的使用者目錄。
-
SSM 至叢集管理員主機。
-
cd /home
. -
ls
- 應列出目錄名稱符合使用者名稱的目錄,例如admin1
、admin2
.. 等。 -
刪除目錄
sudo rm -r 'dir_name'
。請勿刪除 ssm-user 和 ec2-user 目錄。 -
如果使用者已同步到新的 env,請從使用者的 DDB 資料表刪除使用者的 (clusteradmin 除外)。
-
啟動 AD 同步 - 在叢集管理員 Amazon EC2
sudo /opt/idea/python/3.9.16/bin/resctl ldap sync-from-ad
中執行。 -
從 RES 網頁以
Error
狀態重新啟動 VDI 執行個體。驗證 VDI 會在大約 20 分鐘內轉換為Ready
狀態。
-
........................
虛擬桌面元件
........................
Amazon EC2 執行個體在主控台中重複顯示已終止
如果基礎設施執行個體在 Amazon EC2 主控台中重複顯示為已終止,原因可能與其組態相關,並取決於基礎設施執行個體類型。以下是判斷原因的方法。
如果 vdc-controller 執行個體在 Amazon EC2 主控台中顯示重複終止狀態,這可能是由於不正確的秘密標籤所致。RES 維護的秘密具有標籤,做為連接到基礎設施 Amazon EC2 執行個體的 IAM 存取控制政策的一部分。如果 vdc-controller 正在循環,且 CloudWatch 日誌群組中出現下列錯誤,原因可能是秘密未正確標記。請注意,秘密需要標記下列項目:
{ "res:EnvironmentName": "
<envname>
" # e.g. "res-demo" "res:ModuleName": "virtual-desktop-controller" }
此錯誤的 Amazon CloudWatch 日誌訊息會顯示如下:
An error occurred (AccessDeniedException) when calling the GetSecretValue operation: User: arn:aws:sts::160215750999:assumed-role/
<envname>
-vdc-gateway-role-us-east-1/i-043f76a2677f373d0 is not authorized to perform: secretsmanager:GetSecretValue on resource: arn:aws:secretsmanager:us-east-1:160215750999:secret:Certificate-res-bi-Certs-5W9SPUXF08IB-F1sNRv because no identity-based policy allows the secretsmanager:GetSecretValue action
檢查 Amazon EC2 執行個體上的標籤,並確認它們符合上述清單。
........................
vdc-controller 執行個體正在循環中,因為無法加入 AD/eVDI 模組顯示 API 運作狀態檢查失敗
如果 eVDI 模組運作狀態檢查失敗,則會在環境狀態區段中顯示下列項目。

在這種情況下,除錯的一般路徑是查看叢集管理員 CloudWatch<env-name>/cluster-manager
。)
可能的問題:
-
如果日誌包含文字
Insufficient permissions
,請確定建立 res 堆疊時提供的 ServiceAccount 使用者名稱拼寫正確。日誌行範例:
Insufficient permissions to modify computer account: CN=IDEA-586BD25043,OU=Computers,OU=RES,OU=CORP,DC=corp,DC=res,DC=com: 000020E7: AtrErr: DSID-03153943, #1: 0: 000020E7: DSID-03153943, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att 90008 (userAccountControl):len 4 >> 432 ms - request will be retried in 30 seconds
-
您可以從 SecretsManager 主控台
存取 RES 部署期間提供的 ServiceAccount 使用者名稱。在 Secrets Manager 中尋找對應的秘密,然後選取擷取純文字。如果使用者名稱不正確,請選取編輯以更新秘密值。終止目前的叢集管理員和 vdc-controller 執行個體。新執行個體將進入穩定狀態。 -
如果您使用由提供的外部資源堆疊建立的資源,使用者名稱必須是「ServiceAccount」。如果在部署 RES 期間將
DisableADJoin
參數設定為 False,請確定 "ServiceAccount" 使用者具有在 AD 中建立電腦物件的許可。
-
-
如果使用的使用者名稱正確,但日誌包含文字
Invalid credentials
,則您輸入的密碼可能錯誤或已過期。日誌行範例:
{'msgtype': 97, 'msgid': 1, 'result': 49, 'desc': 'Invalid credentials', 'ctrls': [], 'info': '80090308: LdapErr: DSID-0C090569, comment: AcceptSecurityContext error, data 532, v4563'}
-
您可以透過存取在 Secrets Manager 主控台
中存放密碼的秘密,讀取您在建立 env 期間輸入的密碼。選取秘密 (例如 <env_name>directoryserviceServiceAccountPassword
),然後選取擷取純文字。 -
如果秘密中的密碼不正確,請選取編輯以更新秘密中的值。終止目前的叢集管理員和 vdc-controller 執行個體。新執行個體將使用更新的密碼,並進入穩定狀態。
-
如果密碼正確,可能是已連線 Active Directory 中的密碼已過期。您必須先重設 Active Directory 中的密碼,然後更新秘密。您可以從 Directory Service 主控台
重設 Active Directory 中的使用者密碼: -
選擇適當的目錄 ID
-
選取動作、重設使用者密碼,然後使用使用者名稱 (例如「ServiceAccount」) 和新密碼填寫表單。
-
如果新設定的密碼與先前的密碼不同,請在對應的 Secret Manager 秘密中更新密碼 (例如
<env_name>directoryserviceServiceAccountPassword
。 -
終止目前的叢集管理員和 vdc-controller 執行個體。新執行個體將進入穩定狀態。
-
-
........................
編輯軟體堆疊以新增專案時,專案不會出現在下拉式清單中
此問題可能與下列與同步使用者帳戶與 AD 相關的問題有關。如果出現此問題,請檢查叢集管理員 Amazon CloudWatch 日誌群組是否有錯誤「<user-home-init> account not available yet. waiting for user to be synced
」,以判斷原因是否相同或相關。
........................
cluster-manager Amazon CloudWatch 日誌顯示「<user-home-init> 帳戶尚無法使用。正在等待使用者同步」(其中帳戶是使用者名稱)
SQS 訂閱者忙碌且卡在無限迴圈中,因為它無法到達使用者帳戶。在使用者同步期間嘗試為使用者建立主檔案系統時,會觸發此程式碼。
無法到達使用者帳戶的原因可能是 RES 未針對使用中的 AD 正確設定。例如,在 BI/RES 環境建立中使用的ServiceAccountUsername
參數不是正確的值,例如使用「ServiceAccount」而非「Admin」。
........................
登入時 Windows 桌面顯示「您的帳戶已停用。請洽詢您的管理員"

如果使用者無法登入鎖定的畫面,這可能表示使用者在透過 SSO 成功登入後,已在針對 RES 設定的 AD 中停用。
如果使用者帳戶已在 AD 中停用,SSO 登入應該會失敗。
........................
外部/客戶 AD 組態的 DHCP 選項問題
如果您在將 RES "The connection has been closed. Transport error"
與您自己的 Active Directory 搭配使用時遇到使用 Windows 虛擬桌面的錯誤,請檢查 dcv-connection-gateway Amazon CloudWatch 日誌是否有類似如下的內容:
Oct 28 00:12:30.626 INFO HTTP:Splicer Connection{id=263}: Websocket{session_id="96cffa6e-cf2e-410f-9eea-6ae8478dc08a"}: Connection initiated error: unreachable, server io error Custom { kind: Uncategorized, error: "failed to lookup address information: Name or service not known" } Oct 28 00:12:30.626 WARN HTTP:Splicer Connection{id=263}: Websocket{session_id="96cffa6e-cf2e-410f-9eea-6ae8478dc08a"}: Error in websocket connection: Server unreachable: Server error: IO error: failed to lookup address information: Name or service not known Oct 28 00:12:30.627 DEBUG HTTP:Splicer Connection{id=263}: ConnectionGuard dropped
如果您針對自己的 VPC 使用 DHCP 選項的 AD 網域控制器,則需要:
-
將 AmazonProvidedDNS 新增至兩個網域控制站 IPs。
-
將網域名稱設定為 ec2.internal。
此處顯示範例。如果沒有此組態,Windows 桌面會為您提供傳輸錯誤 ,因為 RES/DCV 會尋找 ip-10-0-x-xx.ec2.internal hostname。

........................
Firefox 錯誤 MOZILLA_PKIX_ERROR_REQUIRED_TLS_FEATURE_MISSING
當您使用 Firefox Web 瀏覽器時,當您嘗試連線到虛擬桌面時,可能會遇到 MOZILLA_PKIX_ERROR_REQUIRED_TLS_FEATURE_MISSING 錯誤訊息類型。
原因是 RES Web 伺服器已使用 TLS + Stapling On 設定,但未使用 Stapling Validation 回應 (請參閱 https://support.mozilla.org/en-US/questions/1372483
您可以依照 https://https://really-simple-ssl.com/mozilla_pkix_error_required_tls_feature_missing
........................
Env 刪除
主題
........................
res-xxx-cluster 堆疊處於「DELETE_FAILED」狀態,且無法手動刪除,因為「角色無效或無法擔任」錯誤
如果您注意到 "res-xxx-cluster" 堆疊處於 "DELETE_FAILED" 狀態,且無法手動刪除,您可以執行下列步驟將其刪除。
如果您看到堆疊處於「DELETE_FAILED」狀態,請先嘗試手動將其刪除。它可能會彈出一個對話方塊,確認刪除堆疊。選取刪除。

有時候,即使您刪除所有必要的堆疊資源,您仍可能會看到訊息來選取要保留的資源。在這種情況下,請選取所有資源做為「要保留的資源」,然後選取刪除。
您可能會看到類似 的錯誤 Role: arn:aws:iam::... is Invalid or cannot be assumed

這表示刪除堆疊所需的角色會在堆疊之前先刪除。若要解決此問題,請複製角色的名稱。前往 IAM 主控台,並使用如下所示的參數建立具有該名稱的角色,如下所示:
-
針對信任的實體類型,選取AWS 服務。
-
針對使用案例,在 下
Use cases for other AWS services
選擇CloudFormation
。

選取下一步。請務必提供角色 'AWSCloudFormationFullAccess
' 和 'AdministratorAccess
' 許可。您的檢閱頁面看起來應該如下所示:

然後返回 CloudFormation 主控台並刪除堆疊。您現在應該可以在建立角色後將其刪除。最後,前往 IAM 主控台並刪除您建立的角色。
........................
收集日誌
從 EC2 主控台登入 EC2 執行個體
收集基礎設施主機日誌
-
Cluster-manager:從下列位置取得叢集管理員的日誌,並將其連接到票證。
-
來自 CloudWatch 日誌群組 的所有日誌
<env-name>/cluster-manager
。 -
<env-name>-cluster-manager
EC2 執行個體上/root/bootstrap/logs
目錄下的所有日誌。遵循本節開頭從「從 EC2 主控台登入 EC2 執行個體」連結到 的指示,以登入您的執行個體。
-
-
Vdc-controller:從下列位置取得 vdc-controller 的日誌,並將其連接至票證。
-
來自 CloudWatch 日誌群組 的所有日誌
<env-name>/vdc-controller
。 -
<env-name>-vdc-controller
EC2 執行個體上/root/bootstrap/logs
目錄下的所有日誌。遵循本節開頭從「從 EC2 主控台登入 EC2 執行個體」連結到 的指示,以登入您的執行個體。
-
輕鬆取得日誌的其中一種方法是遵循 從 Linux EC2 執行個體下載日誌一節中的指示。模組名稱會是執行個體名稱。
收集 VDI 日誌
- 識別對應的 Amazon EC2 執行個體
-
如果使用者以工作階段名稱 啟動 VDI
VDI1
,Amazon EC2 主控台上的執行個體對應名稱將為<env-name>-VDI1-<user name>
。 - 收集 Linux VDI 日誌
-
遵循本節開頭「從 Amazon EC2 主控台登入 EC2 執行個體」中連結至 的指示,從 Amazon EC2 主控台登入對應的 Amazon EC2 執行個體。取得 VDI Amazon EC2 執行個體上
/root/bootstrap/logs
和/var/log/dcv/
目錄下的所有日誌。取得日誌的其中一種方法是將日誌上傳至 s3,然後從該處下載日誌。為此,您可以依照下列步驟,從一個目錄取得所有日誌,然後上傳它們:
-
請依照下列步驟,在
/root/bootstrap/logs
目錄下複製 dcv 日誌:sudo su - cd /root/bootstrap mkdir -p logs/dcv_logs cp -r /var/log/dcv/* logs/dcv_logs/
-
現在,請依照下一節列出的步驟下載 VDI 日誌,下載日誌。
-
- 收集 Windows VDI 日誌
-
遵循本節開頭「從 Amazon EC2 主控台登入 EC2 執行個體」中連結至 的指示,從 Amazon EC2 主控台登入對應的 Amazon EC2 執行個體。在 VDI EC2 執行個體的
$env:SystemDrive\Users\Administrator\RES\Bootstrap\Log\
目錄下取得所有日誌。取得日誌的其中一種方法是將它們上傳到 S3,然後從那裡下載它們。若要這樣做,請依照下一節列出的步驟進行:下載 VDI 日誌。
........................
下載 VDI 日誌
更新 VDI EC2 執行個體 IAM 角色以允許 S3 存取。
前往 EC2 主控台,然後選取您的 VDI 執行個體。
選取其正在使用的 IAM 角色。
-
在新增許可下拉式功能表的許可政策區段中,選取連接政策,然後選擇 AmazonS3FullAccess 政策。
選取新增許可以連接該政策。
-
之後,根據您的 VDI 類型,依照下列步驟下載日誌。模組名稱會是執行個體名稱。
-
從 Linux EC2 執行個體下載日誌 適用於 Linux。
-
從 Windows EC2 執行個體下載日誌 適用於 Windows 的 。
-
-
最後,編輯角色以移除
AmazonS3FullAccess
政策。
注意
所有 VDIs 都使用相同的 IAM 角色, <env-name>-vdc-host-role-<region>
........................
從 Linux EC2 執行個體下載日誌
登入您要從中下載日誌的 EC2 執行個體,並執行下列命令,將所有日誌上傳至 s3 儲存貯體:
sudo su - ENV_NAME=
<environment_name>
REGION=<region>
ACCOUNT=<aws_account_number>
MODULE=<module_name>
cd /root/bootstrap tar -czvf ${MODULE}_logs.tar.gz logs/ --overwrite aws s3 cp ${MODULE}_logs.tar.gz s3://${ENV_NAME}-cluster-${REGION}-${ACCOUNT}/${MODULE}_logs.tar.gz
之後,請前往 S3 主控台,選取名稱為 的儲存貯體,<environment_name>-cluster-<region>-<aws_account_number>
然後下載先前上傳<module_name>_logs.tar.gz
的檔案。
........................
從 Windows EC2 執行個體下載日誌
登入您要從中下載日誌的 EC2 執行個體,並執行下列命令,將所有日誌上傳至 S3 儲存貯體:
$ENV_NAME="<environment_name>" $REGION="
<region>
" $ACCOUNT="<aws_account_number>
" $MODULE="<module_name>
" $logDirPath = Join-Path -Path $env:SystemDrive -ChildPath "Users\Administrator\RES\Bootstrap\Log" $zipFilePath = Join-Path -Path $env:TEMP -ChildPath "logs.zip" Remove-Item $zipFilePath Compress-Archive -Path $logDirPath -DestinationPath $zipFilePath $bucketName = "${ENV_NAME}-cluster-${REGION}-${ACCOUNT}" $keyName = "${MODULE}_logs.zip" Write-S3Object -BucketName $bucketName -Key $keyName -File $zipFilePath
之後,請前往 S3 主控台,選取名稱為 的儲存貯體,<environment_name>-cluster-<region>-<aws_account_number>
然後下載先前上傳<module_name>_logs.zip
的檔案。
........................
收集 WaitCondition 錯誤的 ECS 日誌
-
前往部署的堆疊,然後選擇資源索引標籤。
-
展開部署 → ResearchAndEngineeringStudio → 安裝程式 → 任務 → CreateTaskDef → CreateContainer → LogGroup,然後選取日誌群組以開啟 CloudWatch 日誌。
-
從此日誌群組中擷取最新的日誌。
........................
示範環境
........................
處理身分提供者的身分驗證請求時發生示範環境登入錯誤
問題
如果您嘗試登入並在處理身分提供者的身分驗證請求時收到「非預期的錯誤」,您的密碼可能已過期。這可能是您嘗試以 身分登入的使用者的密碼,或是您的 Active Directory 服務帳戶。
緩解
-
在目錄服務主控台
中重設使用者和服務帳戶密碼。 -
在 Secrets Manager
中更新服務帳戶密碼,以符合您在上面輸入的新密碼: -
適用於 Keycloak 堆疊:PasswordSecret-...-RESExternal-...-DirectoryService-... 搭配描述:Microsoft Active Directory 的密碼
-
for RES: res-ServiceAccountPassword-... with Description: Active Directory Service 帳戶密碼
-
-
前往 EC2 主控台
並終止叢集管理員執行個體。Auto Scaling 規則會自動觸發新執行個體的部署。
........................