本文說明如何啟用或停用虛擬機器 (VM) 執行個體的虛擬螢幕。
如果 VM 上執行的應用程式需要顯示裝置,但您不需要 GPU 的效能,請將 VM 設定為使用虛擬顯示裝置。在 VM 上啟用虛擬螢幕後,您就能在 VM 上執行虛擬螢幕裝置,例如遠端系統管理工具、遠端桌面軟體和螢幕擷取。
事前準備
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:
選取這個頁面上範例的預計用途分頁:
控制台
使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,不需要設定驗證。
gcloud
-
安裝 Google Cloud CLI。 安裝完成後,請執行下列指令,初始化 Google Cloud CLI:
gcloud init如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
- 設定預設區域和可用區。
-
安裝 Google Cloud CLI。
-
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
如果您使用的是本機殼層,請為使用者帳戶建立本機驗證憑證:
gcloud auth application-default login
如果您使用的是 Cloud Shell,則不必執行這項操作。
如果系統傳回驗證錯誤,且您使用外部識別資訊提供者 (IdP),請確認您已 使用聯合身分登入 gcloud CLI。
Terraform
如要在本機開發環境中使用本頁的 Terraform 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。
詳情請參閱「 為本機開發環境設定驗證機制」。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。
若您採用的是外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」一節。
必要的角色
如要取得在 VM 上啟用或停用虛擬螢幕所需的權限,請要求管理員授予您專案的「Compute 執行個體管理員 (v1) 」(roles/compute.instanceAdmin.v1) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備啟用或停用 VM 虛擬螢幕所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要啟用或停用 VM 的虛擬螢幕,必須具備下列權限:
-
如要為現有 VM 啟用或停用虛擬螢幕,請在 VM 上按一下
compute.instances.updateDisplayDevice。 -
如要建立已啟用虛擬螢幕的 VM,請按照下列步驟操作:
- 專案的
compute.instances.create權限 - 如要使用自訂映像檔建立 VM,請在映像檔上按一下
compute.images.useReadOnly - 如要使用快照建立 VM,請在快照上
compute.snapshots.useReadOnly - 如要使用執行個體範本建立 VM,請按一下執行個體範本上的
compute.instanceTemplates.useReadOnly - 如要將舊版網路指派給 VM,請在專案中執行
compute.networks.use - 如要為 VM 指定靜態 IP 位址,請在專案中執行下列步驟:
compute.addresses.use - 使用舊版網路時,將外部 IP 位址指派給 VM:
compute.networks.useExternalIp專案 - 如要為 VM 指定子網路,請在專案或所選子網路上執行
compute.subnetworks.use - 如要在使用虛擬私有雲網路時,將外部 IP 位址指派給 VM,請在專案或所選子網路上,指派
compute.subnetworks.useExternalIp角色 - 如要為 VM 設定 VM 執行個體中繼資料,請在專案中執行下列指令:
compute.instances.setMetadata - 如要設定 VM 的標記,請在 VM 上執行
compute.instances.setTags - 如要為 VM 設定標籤,請在 VM 上執行下列指令:
compute.instances.setLabels - 如要設定 VM 使用的服務帳戶,請在 VM 上執行
compute.instances.setServiceAccount - 為 VM 建立新磁碟:在專案中按一下
compute.disks.create - 如要以唯讀或讀寫模式掛接現有磁碟,請按一下磁碟上的
compute.disks.use - 如要以唯讀模式連結現有磁碟,請按一下磁碟上的
compute.disks.useReadOnly
- 專案的
定價
在 VM 上啟用或停用虛擬螢幕不會產生任何費用。
限制
如果 VM 啟用虛擬螢幕,則會受到下列限制:
如果 VM 執行的 Windows OS 映像檔是以 x64 為基礎,且版本早於
v20190312,則在 VM 上啟用虛擬螢幕後,必須按照本文說明安裝虛擬螢幕驅動程式。如果 VM 執行的是較新版本的 OS 映像檔,驅動程式就已安裝在 OS 映像檔中。只有在客層 OS 啟動並初始化虛擬顯示驅動程式後,您才能在 VM 上使用虛擬顯示裝置。
在執行 Sandy Bridge CPU 平台的 VM 上,您無法使用虛擬螢幕裝置。
您無法在 T2A Arm VM 上使用虛擬顯示裝置。
在 VM 上啟用虛擬螢幕
如要在 VM 上啟用虛擬螢幕,請選取本文所述的下列其中一種方法:
如果 VM 執行的是 v20190312 之前的 x64 Windows OS 映像檔,請在 VM 上啟用虛擬螢幕,然後按照本文件所述安裝虛擬螢幕驅動程式。
建立啟用虛擬螢幕的 VM
如要建立啟用虛擬螢幕的 VM,請選取下列其中一個選項:
控制台
前往 Google Cloud 控制台的「Create an instance」(建立執行個體) 頁面。
指定 VM 的屬性,包括名稱、可用區和機型。
在「Display device」(顯示裝置) 部分,勾選「Enable display device」(啟用顯示裝置) 核取方塊。
按一下「Create」(建立),即可建立 VM。
gcloud
如要建立啟用虛擬螢幕的 VM,請使用 gcloud compute instances create 指令搭配 --enable-display-device 旗標。
gcloud compute instances create VM_NAME \
--enable-display-device \
--machine-type=MACHINE_TYPE \
--zone=ZONE
更改下列內容:
VM_NAME:VM 名稱。MACHINE_TYPE:要用於 VM 的機器類型。ZONE:要建立 VM 的可用區。
Terraform
如要建立已啟用虛擬螢幕的 VM,請使用 Terraform 資源,並將 enable_display 引數設為 true。
舉例來說,如要在可用區 us-central1-c 中建立 VM,並啟用虛擬螢幕,以及指定 f1-micro 為機型,請使用下列資源:
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
REST
如要建立已啟用虛擬螢幕的 VM,請向 instances.insert 方法發出 POST 要求。在要求主體中,加入設為 true 的 enableDisplay 欄位。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
"name": "VM_NAME",
"machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "project/IMAGE_PROJECT/global/images/IMAGE"
}
}
],
"displayDevice": {
"enableDisplay": true
},
"networkInterfaces": [
{
"network": "global/networks/default"
}
]
}
更改下列內容:
PROJECT_ID:要建立 VM 的專案 ID。ZONE:要建立 VM 的可用區。VM_NAME:VM 名稱。MACHINE_TYPE:要用於 VM 的機器類型。IMAGE_PROJECT:包含 OS 映像檔的映像檔專案,例如debian-cloud。如要進一步瞭解支援的映像檔專案,請參閱「公開映像檔」。IMAGE:指定下列其中一個值:
如要進一步瞭解如何建立 VM,請參閱「建立及啟動 Compute Engine 執行個體」。
在現有 VM 上啟用虛擬螢幕
在 VM 上啟用虛擬螢幕前,請務必停止 VM。
如要在現有 VM 上啟用虛擬螢幕,請選取下列其中一個選項:
控制台
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
在「Name」(名稱) 欄中,按一下 VM 名稱。
VM 的詳細資料頁面隨即開啟。
按一下「Edit」(編輯)。
系統會開啟編輯 VM 屬性的頁面。
在「Display device」(顯示裝置) 部分,勾選「Enable display device」(啟用顯示裝置) 核取方塊。
按一下 [儲存]。
gcloud
如要在現有 VM 上啟用虛擬螢幕,請使用 gcloud compute instances update 指令搭配 --enable-display-device 標記。
gcloud compute instances update VM_NAME \
--enable-display-device \
--zone=ZONE
更改下列內容:
VM_NAME:VM 名稱。ZONE:VM 所在的可用區。
REST
如要為現有 VM 啟用虛擬螢幕,請向 instances.updateDisplayDevice 方法發出 POST 要求。在要求主體中加入 enableDisplay 欄位,並設為 true。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/updateDisplayDevice
{
"enableDisplay": true
}
更改下列內容:
PROJECT_ID:VM 所在的專案 ID。ZONE:VM 所在的可用區。VM_NAME:VM 名稱。
在現有 VM 上停用虛擬螢幕
在 VM 上停用虛擬螢幕前,請務必停止 VM。
如要停用現有 VM 的虛擬螢幕,請選取下列其中一個選項:
控制台
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
在「Name」(名稱) 欄中,按一下 VM 名稱。
VM 的詳細資料頁面隨即開啟。
按一下「Edit」(編輯)。
系統會開啟編輯 VM 屬性的頁面。
在「Display device」(顯示裝置) 部分,取消勾選「Enable display device」(啟用顯示裝置) 核取方塊。
按一下 [儲存]。
gcloud
如要停用現有 VM 的虛擬螢幕,請使用 gcloud compute instances update 指令和 --no-enable-display-device 旗標。
gcloud compute instances update VM_NAME \
--no-enable-display-device \
--zone=ZONE
更改下列內容:
VM_NAME:VM 名稱。ZONE:VM 所在的可用區。
REST
如要停用現有 VM 的虛擬螢幕,請向 instances.updateDisplayDevice 方法發出 POST 要求。
在要求主體中加入 enableDisplay 欄位,並設為 false。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/updateDisplayDevice
{
"enableDisplay": false
}
更改下列內容:
PROJECT_ID:VM 所在的專案 ID。ZONE:VM 所在的可用區。VM_NAME:VM 名稱。
安裝虛擬螢幕驅動程式
如果您在 Windows VM 上啟用虛擬螢幕,且該 VM 執行的 Windows OS 映像檔版本早於 v20190312,則必須安裝 Google Cloud提供的虛擬螢幕驅動程式,才能在 VM 上使用虛擬螢幕裝置。如果 VM 執行的是較新版本的 OS 映像檔,則驅動程式已安裝完畢,您可以略過本節。
如要在啟用虛擬螢幕的 VM 上安裝虛擬螢幕驅動程式,請按照下列步驟操作:
以系統管理員身分開啟 PowerShell 終端機。
安裝
google-compute-engine-driver-gga元件:googet install google-compute-engine-driver-gga
重新啟動 VM 後,您可以按照下一節的說明,確認驅動程式是否已正確安裝。
確認虛擬螢幕驅動程式安裝作業
如果您必須按照上一節的說明,在 Windows VM 上手動安裝虛擬螢幕驅動程式,可以按照下列步驟確認安裝是否成功:
如果尚未連線至 Windows VM,請先完成這項操作。
開啟裝置管理工具。
在「裝置管理工具」清單的「顯示卡」清單中,確認 Google Graphics Array (GGA) 驅動程式是否列於其中。
如果未列出驅動程式,請按照這份文件所述重新安裝虛擬螢幕驅動程式。