本文說明如何大量建立虛擬機器 (VM) 時,指定執行個體彈性。指定這項設定時,您會指定適合 VM 的機型清單,而 Compute Engine 會根據區域的容量和配額可用性,使用任何指定的機型佈建 VM。
如要進一步瞭解大量建立的 VM 執行個體彈性,請參閱「大量建立的 VM 執行個體彈性簡介」。
事前準備
- 如要建立 VM 和任何相關資源,請確認您有足夠的配額和必要權限。
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,可以選取下列任一選項,向 Compute Engine 進行驗證:
Select the tab for how you plan to use the samples on this page:
gcloud
-
安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:
gcloud init若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
- Set a default region and zone.
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:
gcloud init若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」。
必要的角色
如要取得大量建立 VM 的權限,請要求管理員授予您專案的 Compute 執行個體管理員 (v1) (
roles/compute.instanceAdmin.v1) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。這個預先定義的角色具備大量建立 VM 的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要大量建立 VM,您必須具備下列權限:
-
專案的
compute.instances.create -
如要使用自訂映像檔建立 VM:
compute.images.useReadOnly在映像檔上 -
如要使用快照建立 VM:
compute.snapshots.useReadOnly快照 -
如要使用執行個體範本建立 VM,請按照下列步驟操作:
compute.instanceTemplates.useReadOnly在執行個體範本上 -
如要為 VM 指定子網路,請在專案或所選子網路上授予
compute.subnetworks.use權限。 -
如要為 VM 指定靜態 IP 位址:
專案的
compute.addresses.use -
使用虛擬私有雲網路時,如要將外部 IP 位址指派給 VM:
compute.subnetworks.useExternalIp專案或所選子網路的權限 -
如要將舊版網路指派給 VM,請按照下列步驟操作:
compute.networks.use專案的 -
使用舊版網路時,如要將外部 IP 位址指派給 VM,請在專案中設定
compute.networks.useExternalIp。 -
如要為 VM 設定 VM 執行個體中繼資料,請在專案中執行下列指令:
compute.instances.setMetadata -
如要為 VM 設定標記,請按照下列步驟操作:
compute.instances.setTags在 VM 上 -
如要為 VM 設定標籤,請按照下列步驟操作:
compute.instances.setLabels在 VM 上 -
如要設定 VM 使用的服務帳戶,請執行下列操作:
compute.instances.setServiceAccount在 VM 上 -
為 VM 建立新磁碟:
compute.disks.create專案 -
如要以唯讀或讀寫模式附加現有磁碟:
磁碟的
compute.disks.use -
如要以唯讀模式連接現有磁碟:
compute.disks.useReadOnly磁碟的權限
建立偏好程度相同的多個機型 VM
如果工作負載可使用多種不同的機器類型,您可以在單一執行個體選取作業中,指定所有相容的機器類型清單。以下範例說明如何指定多個偏好程度相同的機器類型。
gcloud
如要透過單一執行個體選取作業大量建立 VM,請使用
gcloud compute instances bulk create指令搭配--instance-selection-machine-types旗標。gcloud compute instances bulk create \ --name-pattern=test-bulk-# \ --region=REGION \ --count=COUNT \ --instance-selection-machine-types=c3-standard-8,n2-standard-8,c2-standard-8REST
在 Compute Engine API 中,向
regionInstances.bulkInsert方法發出POST要求。在要求主體中,請納入instanceFlexibilityPolicy,並包含列出機器類型的instanceSelections項目。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert { "count": COUNT, "namePattern": "test-bulk-#", "instanceFlexibilityPolicy": { "instanceSelections": { "selection-1": { "machineTypes": [ "c3-standard-8", "n2-standard-8", "c2-standard-8" ] } } } }更改下列內容:
COUNT:要建立的 VM 數量。PROJECT_ID:您的專案 ID。REGION:要建立 VM 的區域。
建立 VM,並按照偏好順序排列多個機型
如要讓 Compute Engine 依特定順序選擇機器類型,可以設定多個執行個體選項。每個執行個體選項都包含機型清單和等級 (定義機型偏好的整數)。排名越低,偏好程度越高。 Compute Engine 會嘗試使用偏好順序較高 (排名較低) 的機器類型建立 VM。如果這些機器類型無法使用,Compute Engine 會使用偏好程度較低的機器類型 (排名較高)。
下列範例說明如何使用等級指定多個執行個體選項。
gcloud
如要使用多個執行個體選項大量建立 VM,請使用
gcloud compute instances bulk create指令,並多次指定--instance-selection旗標。gcloud beta compute instances bulk create \ --name-pattern=test-bulk-# \ --region=REGION \ --count=COUNT \ --instance-selection "name=most-preferred,rank=0,machine-type=c3-standard-16,machine-type=n2-standard-16, machine-type=c2-standard-16" \ --instance-selection "name=least-preferred,rank=1,machine-type=c3-standard-8,machine-type=n2-standard-8, machine-type=c2-standard-8"REST
在 Compute Engine API 中,向
regionInstances.bulkInsert方法發出POST要求。在要求主體中加入instanceFlexibilityPolicy,並在instanceSelections中指定多個項目,每個項目都包含機器類型清單和rank。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert { "count": COUNT, "namePattern": "test-bulk-#", "instanceFlexibilityPolicy": { "instanceSelections": { "most-preferred": { "machineTypes": [ "c3-standard-16", "c2-standard-16" ], "rank": 1 }, "least-preferred": { "machineTypes": [ "n2-standard-16", "c3-standard-8", "n2-standard-8", "c2-standard-8" ], "rank": 2 } } } }更改下列內容:
COUNT:要建立的 VM 數量。PROJECT_ID:您的專案 ID。REGION:要建立 VM 的區域。
在選取的執行個體中指定磁碟覆寫
根據預設,大量要求建立的 VM 會使用
instanceProperties中的磁碟設定。不過,您可以在執行個體選取範圍內指定磁碟設定。如果您在執行個體選取項目中指定磁碟,則該磁碟設定會覆寫instanceProperties中使用該執行個體選取項目的 VM 磁碟設定。以下範例說明如何在執行個體選取項目中指定磁碟。
REST
在 Compute Engine API 中,向
regionInstances.bulkInsert方法發出POST要求。在要求主體中加入instanceFlexibilityPolicy,並為任何instanceSelections項目加入disks欄位,以覆寫instanceProperties.disks。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert { "count": COUNT, "namePattern": "test-bulk-#", "instanceFlexibilityPolicy": { "instanceSelections": { "selection-1": { "machineTypes": [ "n2-standard-8", "c2-standard-8" ], "disks": [ { "type": "PERSISTENT", "initializeParams": { "diskType": "pd-ssd", "diskSizeGb": 50, "sourceImage": "IMAGE_URL" }, "boot": true }, { "type": "SCRATCH", "initializeParams": { "diskType": "local-ssd" } } ] }, "selection-2": { "machineTypes": [ "c3-standard-8" ], "disks": [ { "type": "PERSISTENT", "initializeParams": { "diskType": "hyperdisk-balanced", "diskSizeGb": 50, "sourceImage": "IMAGE_URL" }, "boot": true }, { "type": "PERSISTENT", "initializeParams": { "diskType": "hyperdisk-balanced", "diskSizeGb": 128, "sourceImage": "IMAGE_URL" } } ] } } } }更改下列內容:
COUNT:要建立的 VM 數量。IMAGE_URL:開機磁碟映像檔的網址。PROJECT_ID:您的專案 ID。REGION:要建立 VM 的區域。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2026-02-11 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["難以理解","hardToUnderstand","thumb-down"],["資訊或程式碼範例有誤","incorrectInformationOrSampleCode","thumb-down"],["缺少我需要的資訊/範例","missingTheInformationSamplesINeed","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2026-02-11 (世界標準時間)。"],[],[]] -