Jika Anda ingin membuat instance mesin virtual (VM) yang identik dan independen dari satu sama lain dalam jumlah besar, buat VM secara massal menggunakan Google Cloud CLI atau Compute Engine API. Anda dapat membuat VM ini di semua zona dalam satu region atau mendistribusikannya di zona tertentu.
Untuk mengetahui detail selengkapnya dan batasan-batasan terkait, lihat Tentang pembuatan VM secara massal.
Sebelum memulai
- Untuk VM dan resource terkait yang ingin Anda buat, pastikan Anda memiliki kuota yang cukup dan izin yang diperlukan.
-
Jika Anda belum melakukannya, siapkan autentikasi.
Autentikasi adalah
proses verifikasi identitas Anda untuk mengakses layanan dan API Google Cloud.
Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat mengautentikasi ke Compute Engine dengan memilih salah satu opsi berikut:
Select the tab for how you plan to use the samples on this page:
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
compute.instances.create
pada project -
Untuk menggunakan image kustom guna membuat VM:
compute.images.useReadOnly
pada image -
Untuk menggunakan snapshot guna membuat VM:
compute.snapshots.useReadOnly
pada snapshot -
Untuk menggunakan template instance guna membuat VM:
compute.instanceTemplates.useReadOnly
pada template instance -
Untuk menetapkan jaringan lama ke VM:
compute.networks.use
pada project -
Untuk menentukan alamat IP statis untuk VM:
compute.addresses.use
pada project -
Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan lama:
compute.networks.useExternalIp
di project -
Untuk menentukan subnet bagi VM Anda:
compute.subnetworks.use
di project atau di subnet yang dipilih -
Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan VPC:
compute.subnetworks.useExternalIp
di project atau di subnet yang dipilih -
Untuk menetapkan metadata instance VM untuk VM:
compute.instances.setMetadata
pada project -
Untuk menetapkan tag untuk VM:
compute.instances.setTags
di VM -
Untuk menetapkan label untuk VM:
compute.instances.setLabels
di VM -
Untuk menetapkan akun layanan yang akan digunakan VM:
compute.instances.setServiceAccount
di VM -
Untuk membuat disk baru bagi VM:
compute.disks.create
pada project -
Untuk memasang disk yang ada dalam mode hanya baca atau baca-tulis:
compute.disks.use
pada disk -
Untuk memasang disk yang ada dalam mode hanya baca:
compute.disks.useReadOnly
pada disk NAME_PATTERN: pola nama untuk VM. Gunakan urutan karakter hash (
#
) agar Compute Engine dapat menggantinya dengan urutan angka. Misalnya, menggunakanvm-#
untuk pola nama akan menghasilkan VM dengan nama sepertivm-1
danvm-2
, hingga jumlah VM yang ditentukan oleh--count
, yang harus kurang dari atau sama dengan jumlah VM yang diizinkan oleh pola nama.Saat menggunakan pola nama, Compute Engine mencoba menghindari konflik nama dengan memeriksa nama VM yang ada yang dibuat dari permintaan sebelumnya.
PREDEFINED_NAMES: daftar nama standar untuk VM yang akan dibuat. Jika Anda menggunakan flag ini dan menetapkan
COUNT
,COUNT
harus sama dengan jumlah nama yang diberikan.REGION: region tempat VM dibuat.
COUNT: jumlah VM yang akan dibuat. Nilai ini harus kurang dari atau sama dengan jumlah VM yang diizinkan oleh
NAME_PATTERN
. Atau, jika menggunakan--predefined-names
, Anda tidak perlu menentukanCOUNT
, tetapi jika menggunakannya, jumlahnya harus sama dengan jumlah nama yang diberikan.MIN_COUNT: jumlah minimum VM yang akan dibuat. Tabel berikut menjelaskan perilaku permintaan, bergantung pada cara Anda menetapkan tanda ini:
Nilai Deskripsi Belum ditetapkan Nilai defaultnya adalah COUNT
. Jika Compute Engine tidak dapat membuat jumlah VM yang ditentukan olehCOUNT
, permintaan akan gagal dan tidak ada VM yang dibuat.1
Compute Engine membuat VM sebanyak mungkin, hingga COUNT
.Lebih dari 1
dan kurang dariCOUNT
Compute Engine membuat minimal MIN_COUNT
VM hingga maksimumCOUNT
VM. JikaMIN_COUNT
VM tidak dapat dibuat, permintaan akan gagal dan tidak ada VM yang dibuat.LOCATION_POLICY: zona yang akan disertakan atau dikecualikan dalam region. Gunakan daftar pasangan nilai kunci, dengan zona sebagai kunci dan kebijakan sebagai nilai. Nilai yang valid untuk kebijakan ini adalah
allow
, yang merupakan default, dandeny
. Berikut adalah contoh nilai untuk flag ini:--location-policy=us-east1-b=allow,us-east1-c=deny
TARGET_DISTRIBUTION_SHAPE: distribusi VM di seluruh zona yang ditentukan. Gunakan flag
--location-policy
untuk menetapkan zona. Tabel berikut menunjukkan nilai yang valid untuk flag ini:Nilai Deskripsi ANY_SINGLE_ZONE
Menerapkan penempatan VM dalam satu zona, dan memprioritaskan penggunaan pemesanan yang tidak digunakan. Gunakan ini untuk menghindari traffic keluar jaringan lintas zona atau untuk mengurangi latensi jaringan. Ini adalah nilai defaultnya. BALANCED
Mencoba mendistribusikan VM secara merata di semua zona dalam region. ANY
Memungkinkan distribusi VM di beberapa zona dalam satu region. Memilih zona yang memiliki resource tersedia dan yang memaksimalkan pemesanan zona yang tidak digunakan. PROJECT_ID: ID project.
REGION: region tempat VM dibuat.
NAME_PATTERN: pola nama untuk VM. Tentukan ini atau
perInstanceProperties
. Gunakan urutan karakter hash (#
) untuk Compute Engine agar diganti dengan urutan angka. Misalnya, menggunakanvm-#
untuk pola nama akan menghasilkan VM dengan nama sepertivm-1
danvm-2
, hingga jumlah VM yang ditentukan oleh--count
, yang harus kurang dari atau sama dengan jumlah VM yang diizinkan oleh pola nama.Saat menggunakan pola nama, Compute Engine mencoba menghindari konflik nama dengan memeriksa nama VM yang ada yang dibuat dari permintaan sebelumnya.
PREDEFINED_NAME_1, PREDEFINED_NAME_2, ...: daftar nama standar untuk VM yang akan dibuat. Tentukan ini atau
namePattern
. Jika menggunakan flag ini dan menentukanCOUNT
,COUNT
harus sama dengan jumlah nama yang diberikan.COUNT: jumlah VM yang akan dibuat. Nilai ini harus kurang dari atau sama dengan jumlah VM yang diizinkan oleh
NAME_PATTERN
. Atau, jika menggunakanperInstanceProperties
, Anda tidak perlu menentukanCOUNT
, tetapi jika menggunakannya, jumlahnya harus sama dengan jumlah nama yang diberikan.MIN_COUNT: jumlah minimum VM yang akan dibuat. Tabel berikut menjelaskan perilaku permintaan, bergantung pada cara Anda menetapkan tanda ini:
Nilai Deskripsi Belum ditetapkan Nilai defaultnya adalah COUNT
. Jika Compute Engine tidak dapat membuat jumlah VM yang ditentukan olehCOUNT
, permintaan akan gagal dan tidak ada VM yang dibuat.1
Compute Engine membuat VM sebanyak mungkin, hingga COUNT
.Lebih dari 1
dan kurang dariCOUNT
Compute Engine membuat minimal MIN_COUNT
VM hingga maksimumCOUNT
VM. JikaMIN_COUNT
VM tidak dapat dibuat, permintaan akan gagal dan tidak ada VM yang dibuat.LOCATION_POLICY: zona yang akan disertakan atau dikecualikan dalam region. Gunakan daftar pasangan nilai kunci, dengan zona sebagai kunci dan kebijakan sebagai nilai. Nilai yang valid untuk kebijakan ini adalah
ALLOW
, yang merupakan default, danDENY
. Berikut adalah contoh nilai untuk kolom ini:"locations": { "zones/us-central1-a": { "preference": "ALLOW" }, "zones/us-central1-c": { "preference": "DENY" }, ... },
TARGET_DISTRIBUTION_SHAPE: distribusi VM di seluruh zona yang ditentukan. Gunakan kolom
locationPolicy
untuk menentukan zona. Tabel berikut menunjukkan nilai yang valid untuk kolom ini:Nilai Deskripsi ANY_SINGLE_ZONE
Menerapkan penempatan VM dalam satu zona, dan memprioritaskan penggunaan pemesanan yang tidak digunakan. Gunakan ini untuk menghindari traffic keluar jaringan lintas zona atau untuk mengurangi latensi jaringan. Ini adalah nilai defaultnya. BALANCED
Mencoba mendistribusikan VM secara merata di semua zona dalam region. ANY
Memungkinkan distribusi VM di beberapa zona dalam satu region. Memilih zona yang memiliki resource tersedia dan yang memaksimalkan pemesanan zona yang tidak digunakan. NAME_PATTERN: pola nama untuk VM. Gunakan urutan karakter hash (
#
) agar Compute Engine dapat menggantinya dengan urutan angka. Misalnya, menggunakanvm-#
untuk pola nama akan menghasilkan VM dengan nama sepertivm-1
danvm-2
, hingga jumlah VM yang ditentukan oleh--count
, yang harus kurang dari atau sama dengan jumlah VM yang diizinkan oleh pola nama.Saat menggunakan pola nama, Compute Engine mencoba menghindari konflik nama dengan memeriksa nama VM yang ada yang dibuat dari permintaan sebelumnya.
PREDEFINED_NAMES: daftar nama standar untuk VM yang akan dibuat. Jika Anda menggunakan flag ini dan menetapkan
COUNT
,COUNT
harus sama dengan jumlah nama yang diberikan.ZONE: zona tempat VM dibuat.
COUNT: jumlah VM yang akan dibuat. Nilai ini harus kurang dari atau sama dengan jumlah VM yang diizinkan oleh
NAME_PATTERN
. Atau, jika menggunakan--predefined-names
, Anda tidak perlu menentukanCOUNT
, tetapi jika menggunakannya, jumlahnya harus sama dengan jumlah nama yang diberikan.MIN_COUNT: jumlah minimum VM yang akan dibuat. Tabel berikut menjelaskan perilaku permintaan, bergantung pada cara Anda menetapkan tanda ini:
Nilai Deskripsi Belum ditetapkan Nilai defaultnya adalah COUNT
. Jika Compute Engine tidak dapat membuat jumlah VM yang ditentukan olehCOUNT
, permintaan akan gagal dan tidak ada VM yang dibuat.1
Compute Engine membuat VM sebanyak mungkin, hingga COUNT
.Lebih dari 1
dan kurang dariCOUNT
Compute Engine membuat minimal MIN_COUNT
VM hingga maksimumCOUNT
VM. JikaMIN_COUNT
VM tidak dapat dibuat, permintaan akan gagal dan tidak ada VM yang dibuat.PROJECT_ID: ID project.
ZONE: zona tempat VM dibuat.
NAME_PATTERN: pola nama untuk VM. Tentukan ini atau
perInstanceProperties
. Gunakan urutan karakter hash (#
) untuk Compute Engine agar diganti dengan urutan angka. Misalnya, menggunakanvm-#
untuk pola nama akan menghasilkan VM dengan nama sepertivm-1
danvm-2
, hingga jumlah VM yang ditentukan oleh--count
, yang harus kurang dari atau sama dengan jumlah VM yang diizinkan oleh pola nama.Saat menggunakan pola nama, Compute Engine mencoba menghindari konflik nama dengan memeriksa nama VM yang ada yang dibuat dari permintaan sebelumnya.
PREDEFINED_NAME_1, PREDEFINED_NAME_2, ...: daftar nama standar untuk VM yang akan dibuat. Tentukan ini atau
namePattern
. Jika menggunakan flag ini dan menentukanCOUNT
,COUNT
harus sama dengan jumlah nama yang diberikan.COUNT: jumlah VM yang akan dibuat. Nilai ini harus kurang dari atau sama dengan jumlah VM yang diizinkan oleh
NAME_PATTERN
. Atau, jika menggunakanperInstanceProperties
, Anda tidak perlu menentukanCOUNT
, tetapi jika menggunakannya, jumlahnya harus sama dengan jumlah nama yang diberikan.MIN_COUNT: jumlah minimum VM yang akan dibuat. Tabel berikut menjelaskan perilaku permintaan, bergantung pada cara Anda menetapkan tanda ini:
Nilai Deskripsi Belum ditetapkan Nilai defaultnya adalah COUNT
. Jika Compute Engine tidak dapat membuat jumlah VM yang ditentukan olehCOUNT
, permintaan akan gagal dan tidak ada VM yang dibuat.1
Compute Engine membuat VM sebanyak mungkin, hingga COUNT
.Lebih dari 1
dan kurang dariCOUNT
Compute Engine membuat minimal MIN_COUNT
VM hingga maksimumCOUNT
VM. JikaMIN_COUNT
VM tidak dapat dibuat, permintaan akan gagal dan tidak ada VM yang dibuat.VM_NAME.c.PROJECT_ID.internal
saat Anda mengaktifkan DNS globalVM_NAME.ZONE.c.PROJECT_ID.internal
saat Anda mengaktifkan DNS zonaNAME_PATTERN: pola nama untuk VM. Gunakan urutan karakter hash (
#
) agar Compute Engine dapat menggantinya dengan urutan angka. Misalnya, menggunakanvm-#
untuk pola nama akan menghasilkan VM dengan nama sepertivm-1
danvm-2
, hingga jumlah VM yang ditentukan oleh--count
, yang harus kurang dari atau sama dengan jumlah VM yang diizinkan oleh pola nama.Saat menggunakan pola nama, Compute Engine mencoba menghindari konflik nama dengan memeriksa nama VM yang ada yang dibuat dari permintaan sebelumnya.
PREDEFINED_NAMES: daftar nama standar untuk VM yang akan dibuat. Jika Anda menggunakan flag ini dan menetapkan
COUNT
,COUNT
harus sama dengan jumlah nama yang diberikan.[VM_NAME=HOSTNAME, ...]: daftar key-value pair nama standar untuk VM dan nama host domain yang sepenuhnya memenuhi syarat yang ingin Anda tetapkan untuk VM. Nama host kustom harus sesuai dengan persyaratan RFC 1035 untuk nama host yang valid.
REGION: zona tempat VM dibuat.
COUNT: jumlah VM yang akan dibuat. Nilai ini harus kurang dari atau sama dengan jumlah VM yang diizinkan oleh
NAME_PATTERN
. Atau, jika menggunakan--predefined-names
, Anda tidak perlu menentukanCOUNT
, tetapi jika menggunakannya, jumlahnya harus sama dengan jumlah nama yang diberikan.MIN_COUNT: jumlah minimum VM yang akan dibuat. Tabel berikut menjelaskan perilaku permintaan, bergantung pada cara Anda menetapkan tanda ini:
Nilai Deskripsi Belum ditetapkan Nilai defaultnya adalah COUNT
. Jika Compute Engine tidak dapat membuat jumlah VM yang ditentukan olehCOUNT
, permintaan akan gagal dan tidak ada VM yang dibuat.1
Compute Engine membuat VM sebanyak mungkin, hingga COUNT
.Lebih dari 1
dan kurang dariCOUNT
Compute Engine membuat minimal MIN_COUNT
VM hingga maksimumCOUNT
VM. JikaMIN_COUNT
VM tidak dapat dibuat, permintaan akan gagal dan tidak ada VM yang dibuat.LOCATION_POLICY: zona yang akan disertakan atau dikecualikan dalam region. Gunakan daftar pasangan nilai kunci, dengan zona sebagai kunci dan kebijakan sebagai nilai. Nilai yang valid untuk kebijakan ini adalah
ALLOW
, yang merupakan default, danDENY
. Berikut adalah contoh nilai untuk kolom ini:"locations": { "zones/us-central1-a": { "preference": "ALLOW" }, "zones/us-central1-c": { "preference": "DENY" }, ... },
TARGET_DISTRIBUTION_SHAPE: distribusi VM di seluruh zona yang ditentukan. Gunakan kolom
locationPolicy
untuk menentukan zona. Tabel berikut menunjukkan nilai yang valid untuk kolom ini:Nilai Deskripsi ANY_SINGLE_ZONE
Menerapkan penempatan VM dalam satu zona, dan memprioritaskan penggunaan pemesanan yang tidak digunakan. Gunakan ini untuk menghindari traffic keluar jaringan lintas zona atau untuk mengurangi latensi jaringan. Ini adalah nilai defaultnya. BALANCED
Mencoba mendistribusikan VM secara merata di semua zona dalam region. ANY
Memungkinkan distribusi VM di beberapa zona dalam satu region. Memilih zona yang memiliki resource tersedia dan yang memaksimalkan pemesanan zona yang tidak digunakan. PROJECT_ID: ID project.
REGION: region tempat VM dibuat.
NAME_PATTERN: pola nama untuk VM. Tentukan ini atau
perInstanceProperties
. Gunakan urutan karakter hash (#
) untuk Compute Engine agar diganti dengan urutan angka. Misalnya, menggunakanvm-#
untuk pola nama akan menghasilkan VM dengan nama sepertivm-1
danvm-2
, hingga jumlah VM yang ditentukan oleh--count
, yang harus kurang dari atau sama dengan jumlah VM yang diizinkan oleh pola nama.Saat menggunakan pola nama, Compute Engine mencoba menghindari konflik nama dengan memeriksa nama VM yang ada yang dibuat dari permintaan sebelumnya.
PREDEFINED_NAME_1, PREDEFINED_NAME_2, ...: daftar nama standar untuk VM yang akan dibuat. Tentukan ini atau
namePattern
. Jika menggunakan flag ini dan menentukanCOUNT
,COUNT
harus sama dengan jumlah nama yang diberikan.HOSTNAME_1, HOSTNAME_2, ...: nama host domain yang sepenuhnya memenuhi syarat (FQDN) yang ingin Anda tetapkan untuk VM. Nama host kustom harus sesuai dengan persyaratan RFC 1035 untuk nama host yang valid.
Misalnya, untuk membuat dua VM
vm-1
danvm-2
dengan nama host kustommy-host1234.example.com
dantest.example.com
, tentukan propertihostname
diperInstanceProperties
sebagai berikut:{ ... "perInstanceProperties": { "vm-1": { "hostname": "my-host1234.example.com" }, "vm-2": { "hostname": "test.example.com" }, ... },
COUNT: jumlah VM yang akan dibuat. Nilai ini harus kurang dari atau sama dengan jumlah VM yang diizinkan oleh
NAME_PATTERN
. Atau, jika menggunakanperInstanceProperties
, Anda tidak perlu menentukanCOUNT
, tetapi jika menggunakannya, jumlahnya harus sama dengan jumlah nama yang diberikan.MIN_COUNT: jumlah minimum VM yang akan dibuat. Tabel berikut menjelaskan perilaku permintaan, bergantung pada cara Anda menetapkan tanda ini:
Nilai Deskripsi Belum ditetapkan Nilai defaultnya adalah COUNT
. Jika Compute Engine tidak dapat membuat jumlah VM yang ditentukan olehCOUNT
, permintaan akan gagal dan tidak ada VM yang dibuat.1
Compute Engine membuat VM sebanyak mungkin, hingga COUNT
.Lebih dari 1
dan kurang dariCOUNT
Compute Engine membuat minimal MIN_COUNT
VM hingga maksimumCOUNT
VM. JikaMIN_COUNT
VM tidak dapat dibuat, permintaan akan gagal dan tidak ada VM yang dibuat.LOCATION_POLICY: zona yang akan disertakan atau dikecualikan dalam region. Gunakan daftar pasangan nilai kunci, dengan zona sebagai kunci dan kebijakan sebagai nilai. Nilai yang valid untuk kebijakan ini adalah
ALLOW
, yang merupakan default, danDENY
. Berikut adalah contoh nilai untuk kolom ini:"locations": { "zones/us-central1-a": { "preference": "ALLOW" }, "zones/us-central1-c": { "preference": "DENY" }, ... },
TARGET_DISTRIBUTION_SHAPE: distribusi VM di seluruh zona yang ditentukan. Gunakan kolom
locationPolicy
untuk menentukan zona. Tabel berikut menunjukkan nilai yang valid untuk kolom ini:Nilai Deskripsi ANY_SINGLE_ZONE
Menerapkan penempatan VM dalam satu zona, dan memprioritaskan penggunaan pemesanan yang tidak digunakan. Gunakan ini untuk menghindari traffic keluar jaringan lintas zona atau untuk mengurangi latensi jaringan. Ini adalah nilai defaultnya. BALANCED
Mencoba mendistribusikan VM secara merata di semua zona dalam region. ANY
Memungkinkan distribusi VM di beberapa zona dalam satu region. Memilih zona yang memiliki resource tersedia dan yang memaksimalkan pemesanan zona yang tidak digunakan. PROJECT_ID
: ID project tempat Anda membuat VMREGION
: region tempat Anda membuat VMZONE
: zona tempat Anda membuat VMOPERATION_ID
: ID operasi penyisipan massalstatus
: statusnya adalah salah satu dari hal berikut:CREATING
: Pembuatan VM sedang berlangsungROLLING_BACK
: permintaan gagal dan di-roll backDONE
: Pembuatan atau rollback VM telah berhasil selesai
targetVmCount
: jumlah VM yang akan dibuat di zona yang ditentukancreatedVmCount
: jumlah VM yang telah dibuat di zona yang ditentukanfailedToCreateVmCount
: jumlah VM yang gagal dibuat di zona yang ditentukandeletedVmCount
: jumlah VM yang dihapus sebagai bagian dari rollback operasi yang gagalDari
Operation
yang ditampilkan oleh permintaan, dapatkan nilai propertioperationGroupId
.Gunakan properti
operationGroupId
sebagai filter dengan perintahgcloud compute operations list
untuk menelusuri VM yang terkait dengan permintaan regional atau zona di semua operasi dan semua zona dalam project untuk VM yang terkait dengan permintaan regional atau zona:gcloud compute operations list \ --filter=(operationGroupId=OPERATION_GROUP_ID)
Dapatkan properti VM lainnya dengan melakukan salah satu tindakan berikut:
Dari daftar operasi,
targetLink
mewakili jalur VM. Gunakan perintahgcloud compute instances describe
dengan jalur ini sebagai nama VM untuk mendapatkan properti VM:gcloud compute instances describe VM_NAME
Gunakan perintah
gcloud compute instances list
dengan filter yang menyertakan nama VM dari daftar operasi:gcloud compute instances list VM_NAME \ --filter=(name=VM_NAME_1) OR (name=VM_NAME_2)
Gunakan perintah
gcloud compute instances list
untuk mendapatkan properti VM dari semua zona dan region, lalu filter menurut label yang unik untuk instance atau menurut namanya:gcloud compute instances list \ --filter=(name=VM_NAME_1) OR (name=VM_NAME_2)
Dari
Operation
yang ditampilkan oleh permintaan, dapatkan nilai propertioperationGroupId
.Gunakan properti
operationGroupId
untuk mendapatkan daftar operasi VM yang terkait dengan permintaan regional atau zona:Jika Anda mengirim permintaan regional, untuk menelusuri semua operasi dan semua zona dalam project, gunakan metode
globalOperations.aggregatedList
dan sertakan propertioperationGroupId
sebagai filter:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/aggregated/operations?filter=(operationGroupId=OPERATION_GROUP_ID)
Jika Anda mengirim permintaan zonal, untuk mencantumkan operasi di zona tersebut, gunakan metode
zoneOperations.get
dan sertakan propertioperationGroupId
dalam isi permintaan:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/bulkInsert { ... "operationGroupId":"OPERATION_GROUP_ID" ... }
Dapatkan properti VM lainnya dengan melakukan salah satu tindakan berikut:
Dari daftar operasi,
targetLink
mewakili jalur VM. Gunakan metodeinstances.get
dengan jalur ini sebagai nama VM untuk mendapatkan semua properti VM:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME
Gunakan metode
instances.get
dengan filter yang menyertakan nama VM dari daftar operasi:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances?filter=(name=VM_NAME_1) OR (name=VM_NAME_2)
Gunakan metode
instances.aggregatedList
untuk mendapatkan properti VM dari semua zona dan region, dan filter menurut label yang unik untuk instance atau menurut namanya:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/aggregated/instances?filter=(name=VM_NAME_1) OR (name=VM_NAME_2)
Tentukan jumlah VM yang akan dibuat dalam zona.
nTarget = 1000
Tentukan region tempat Anda akan mencoba membuat VM.
acceptableRegions = ["us-central1", "us-east1", "us-west1"]
Lakukan iterasi di seluruh region, dan coba buat VM di setiap region hingga berhasil.
for region in acceptableRegions: call bulk API: region=region, location-policy=location-policy, count=nTarget if request succeeds and the operation succeeds: break
Tentukan jumlah VM yang akan dibuat dan region tempat VM akan dibuat.
nTarget = 1000 region = "us-central1"
Tentukan kelompok mesin tempat Anda akan mencoba membuat VM.
acceptableMachineFamilies = ["n2","c2","e2","n1"]
Lakukan iterasi pada kumpulan jenis mesin dan coba buat VM pada jenis mesin tersebut hingga berhasil.
for family in acceptableMachineFamilies: call bulk APIs: region=region, count=nTarget, machineFamily=family if request succeeds and the operation succeeds: break
Tentukan jumlah VM yang akan dibuat, penghitung untuk melacak jumlah VM yang dibuat, region tempat VM akan dibuat, dan variabel untuk menyimpan zona tempat Compute Engine membuat VM.
nTarget = 10000 nCreated = 0 region = "us-central1" targetZone = ""
Buat permintaan awal untuk membuat 5.000 VM, simpan zona yang ditampilkan oleh permintaan, dan perbarui penghitung jumlah VM yang dibuat.
call bulk API: region=region, count=5000 targetZone = zone chosen by bulk API nCreated += # of VMs created
Lanjutkan membuat permintaan untuk membuat hingga 5.000 VM sekaligus di zona tersebut hingga Compute Engine membuat jumlah VM yang ditentukan.
while(nTarget - nCreated > 0): call bulk API: zone=targetZone, count=5000 nCreated += # of VMs created
Tentukan jumlah VM yang akan dibuat, zona tempat VM akan dibuat, dan struktur data untuk menyimpan nama.
nTarget = 1000 targetZone = "us-central-1a" names = []
Buat nama berpola untuk VM dan tambahkan nama ke struktur data.
for n in range(0, 1000): names.push("instance-%d".format(n))
Buat VM, dan gunakan
perInstanceProperties
untuk menentukan nama.call bulk API(zone=targetZone, count=nTarget, names=perInstanceProperties)
Dapatkan detail VM menggunakan metode
instances.list
dengan filter untuk nama VM yang akan menampilkan detailnya.instances.list(filter=(name = "instance-1") OR (name = "instance-2") ...)
Tambahkan VM ke grup instance tidak terkelola. Menambahkan VM ke grup instance tidak terkelola memungkinkan Anda menggunakan Cloud Monitoring. Grup instance yang tidak dikelola tidak menyediakan load balancing atau pengelolaan siklus proses VM.
Gunakan label. Label memungkinkan Anda untuk mengatur resource menggunakan key-value pair.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Untuk informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk membuat VM secara massal, minta administrator untuk memberi Anda peran IAM Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) di project. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.Peran bawaan ini berisi izin yang diperlukan untuk membuat VM secara massal. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk membuat VM secara massal:
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Membuat VM secara massal di suatu region
Untuk membuat VM secara massal di region, gunakan gcloud CLI atau Compute Engine API.
Jika Anda menentukan sendiri jenis mesin atau dukungan untuk hardware tambahan seperti GPU atau SSD lokal, Compute Engine akan menempatkan VM di zona dalam region yang mendukung jenis mesin dan hardware tambahan tersebut.
gcloud
Untuk membuat VM secara massal di suatu region, gunakan perintah
gcloud compute instances bulk create
berikut:gcloud compute instances bulk create \ ( --name-pattern="NAME_PATTERN" | --predefined-names=[PREDEFINED_NAMES] ) \ --region=REGION \ --count=COUNT \ [ --min-count=MIN_COUNT \ ] [--location-policy=LOCATION_POLICY \ ] [--target-distribution-shape=TARGET_DISTRIBUTION_SHAPE ]
Ganti kode berikut:
REST
Untuk membuat VM secara massal di suatu region, gunakan metode
instances.bulkInsert
berikut:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert { ... "namePattern": "NAME_PATTERN", "perInstanceProperties": { "PREDEFINED_NAME_1": {}, "PREDEFINED_NAME_2": {}, ... }, "count": COUNT, "minCount": MIN_COUNT, "locationPolicy": { "LOCATION_POLICY" }, "targetShape": "TARGET_DISTRIBUTION_SHAPE" ... }
Ganti kode berikut:
Membuat VM secara massal dalam satu zona
Untuk membuat VM secara massal di zona, gunakan gcloud CLI atau Compute Engine API.
gcloud
Untuk membuat VM secara massal di zona tertentu, gunakan perintah
gcloud compute instances bulk create
berikut.gcloud compute instances bulk create \ ( --name-pattern="NAME_PATTERN" | --predefined-names=[PREDEFINED_NAMES] ) \ --zone=ZONE \ --count=COUNT \ [ --min-count=MIN_COUNT ]
Ganti kode berikut:
REST
Untuk membuat VM secara massal di zona, gunakan metode
instances.bulkInsert
berikut.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert { ... "namePattern": "NAME_PATTERN", "perInstanceProperties": { "PREDEFINED_NAME_1": {}, "PREDEFINED_NAME_2": {}, ... }, "count": COUNT, "minCount": MIN_COUNT, ... }
Ganti kode berikut:
Membuat VM dengan nama host kustom secara massal
Anda dapat membuat VM dengan nama host kustom secara massal di region atau zona menggunakan gcloud CLI atau Compute Engine API.
Anda harus mengonfigurasi data DNS secara manual untuk nama host kustom. Untuk mengetahui informasi selengkapnya, lihat batasan-batasan.
Jika Anda tidak menentukan nama host, Compute Engine akan menetapkan nama host untuk VM sebagai salah satu dari berikut:
Untuk mengetahui informasi selengkapnya, lihat nama DNS internal.
gcloud
Untuk membuat VM secara massal dengan nama host kustom di region tertentu, gunakan perintah
gcloud beta compute instances bulk create
berikut.gcloud beta compute instances bulk create \ ( --name-pattern="NAME_PATTERN" | --predefined-names=[PREDEFINED_NAMES] ) \ --per-instance-hostnames=[VM_NAME=HOSTNAME,...] \ --zone=REGION \ --count=COUNT \ [ --min-count=MIN_COUNT ] [--location-policy=LOCATION_POLICY \ ] [--target-distribution-shape=TARGET_DISTRIBUTION_SHAPE ]
Ganti kode berikut:
REST
Untuk membuat VM dengan nama host kustom secara massal di region tertentu, gunakan metode
instances.bulkInsert
berikut:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert { ... "namePattern": "NAME_PATTERN", "perInstanceProperties": { "PREDEFINED_NAME_1": {"hostname": HOSTNAME_1}, "PREDEFINED_NAME_2": {"hostname": HOSTNAME_2}, ... }, "count": COUNT, "minCount": MIN_COUNT, "locationPolicy": { "LOCATION_POLICY" }, "targetShape": "TARGET_DISTRIBUTION_SHAPE" ... }
Ganti kode berikut:
Memeriksa status permintaan untuk membuat VM secara massal
Saat Anda membuat permintaan mutasi, Compute Engine akan menampilkan resource
operation
yang dapat Anda polling untuk mendapatkan status operasi. Untuk mengetahui informasi selengkapnya, lihat Menangani respons API.Untuk mendapatkan status permintaan penyisipan massal, kirim permintaan
GET
HTTP ke resourceoperation
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/operations/OPERATION_ID
Untuk mendapatkan status permintaan penyisipan massal regional, kirim permintaan berikut:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/operations/OPERATION_ID
Ganti kode berikut:
Objek
instancesBulkInsertOperationMetadata
dalam respons berisi detail operasi berikut:Kolom
progress
dalam respons mewakili persentase penyelesaian operasi.Status operasi penyisipan massal adalah
RUNNING
hingga Compute Engine berhasil membuat setidaknya jumlah minimum VM dan tidak ada lagi pembuatan atau rollback permintaan VM ini.Saat operasi penyisipan massal sedang berlangsung, Anda akan melihat respons yang mirip dengan berikut ini:
{ "kind" : "compute#operation", "id": "4653028658507445766", "name": "operation-1587661030638-5a3f823c143e3-e33bbfa3-bd72185c", "operationType": "bulkInsert", "targetLink": "https://www.googleapis.com/compute/v1/projects/my-project" "targetId": 4653028658507445766, "status": "RUNNING", "progress": 2, "user": "example@google.com", "insertTime": "2023-04-23T09:57:13.474-07:00", "startTime": "2023-04-23T09:57:13.474-07:00", "selfLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/operations/operation-1587661030638-5a3f823c143e3-e33bbfa3-bd72185c", "operationGroupId": "4653028658507445766", "metadata": "instances_bulk_insert_operation_metadata": { "per_location_status": { "zones/us-central1-a": { "status": "CREATING", "targetVmCount": 50, "createdVmCount": 1 } } } }
Dalam contoh ini, satu instance telah berhasil dibuat dan operasinya telah selesai 2%.
Operasi akan menampilkan status
DONE
saat Compute Engine berhasil membuat setidaknya jumlah minimum VM yang ditentukan olehminCount
, atau saat Compute Engine menyelesaikan rollback permintaan. Setelah berhasil membuat jumlah VM yang diminta, Anda akan mendapatkan respons yang mirip dengan berikut:{ "endTime": "2023-04-23T09:58:13.474-07:00", "id": "5053101474378293244", "insertTime": "2023-04-23T09:57:13.474-07:00", "instancesBulkInsertOperationMetadata": { "perLocationStatus": { "zones/us-central1-a": { "status": "DONE", "createdVmCount": 50, "targetVmCount": 50 } } }, "kind": "compute#operation", "name": "operation-1587661030638-5a3f823c143e3-e33bbfa3-bd72185c", "operationGroupId": "4653028658507445766", "operationType": "bulkInsert", "progress": 100, "selfLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/operations/operation-1587661030638-5a3f823c143e3-e33bbfa3-bd72185c", "startTime": "2023-09-11T16:21:55.629-07:00", "status": "DONE", "targetId": "625521788110", "targetLink": "https://www.googleapis.com/compute/v1/projects/my-project", "user": "example@google.com", "zone": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a" }
Untuk informasi selengkapnya, lihat dokumentasi untuk objek
instancesBulkInsertOperationMetadata
.Memeriksa status VM tunggal
Untuk memeriksa status satu VM yang dibuat dari permintaan untuk membuat VM secara massal, gunakan gcloud CLI atau Compute Engine API.
gcloud
REST
Contoh kode semu
Contoh kode semu berikut menunjukkan cara menyesuaikan permintaan untuk membuat VM secara massal.
Membuat VM secara massal di satu region dari kumpulan region
Kode semu berikut menjelaskan cara membuat 1.000 VM di satu region dari kumpulan region. Saat mencoba membuat VM secara massal di satu region dari kumpulan region, permintaan akan memeriksa kapasitas terlebih dahulu. Jika kapasitas tidak memadai, permintaan akan langsung gagal dan mencoba lagi dengan region berikutnya dalam set.
Membuat VM secara massal di satu zona pada jenis mesin
Kode semu berikut menjelaskan cara membuat beberapa VM di zona pada jenis mesin yang ditentukan. Saat mencoba membuat VM secara massal pada jenis mesin yang sama, permintaan akan memeriksa ketersediaan jenis mesin tersebut terlebih dahulu. Jika jumlah jenis mesin tidak cukup, permintaan akan langsung gagal dan mencoba lagi dengan jenis mesin berikutnya.
Membuat lebih dari 5.000 VM dalam satu zona
Saat membuat VM secara massal, Anda hanya dapat membuat 5.000 VM pada setiap permintaan. Kode semu berikut menjelaskan cara membuat lebih dari 5.000 VM di satu zona dengan membuat beberapa permintaan.
Membuat VM secara massal dan melihat statusnya
Prosedur berikut menunjukkan cara membuat grup VM dengan nama bawaan, lalu melihat statusnya:
Langkah berikutnya
Setelah membuat VM secara massal, lakukan salah satu atau kedua tindakan berikut untuk menyederhanakan pengelolaan VM tersebut:
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2024-11-27 UTC.
-