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 suatu region atau didistribusikan di zona tertentu.
Untuk mengetahui detail selengkapnya dan batasan-batasan terkait, lihat Tentang pembuatan VM secara massal. Jika Anda ingin membuat instance dengan GPU yang terpasang, lihat Membuat VM GPU secara massal.
Sebelum memulai
- Untuk VM dan resource terkait yang ingin Anda buat, pastikan Anda memiliki kuota yang cukup dan izin yang diperlukan.
-
Siapkan autentikasi, jika Anda belum melakukannya.
Autentikasi memverifikasi identitas Anda untuk mengakses layanan dan API Google Cloud . Untuk menjalankan
kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke
Compute Engine dengan memilih salah satu opsi berikut:
Select the tab for how you plan to use the samples on this page:
gcloud
-
Instal Google Cloud CLI. Setelah penginstalan, lakukan inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:
gcloud initJika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
- Set a default region and zone.
REST
Untuk memakai contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Instal Google Cloud CLI. Setelah penginstalan, lakukan inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:
gcloud initJika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud .
Peran yang diperlukan
Agar mendapatkan izin yang Anda perlukan 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:
-
compute.instances.createdi project -
Untuk menggunakan image kustom guna membuat VM:
compute.images.useReadOnlypada image -
Untuk menggunakan snapshot guna membuat VM:
compute.snapshots.useReadOnlypada snapshot -
Untuk menggunakan template instance guna membuat VM:
compute.instanceTemplates.useReadOnlypada template instance -
Untuk menentukan subnet bagi VM Anda:
compute.subnetworks.usedi project atau di subnet yang dipilih -
Untuk menentukan alamat IP statis untuk VM:
compute.addresses.usepada project -
Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan VPC:
compute.subnetworks.useExternalIpdi project atau di subnet yang dipilih -
Untuk menetapkan jaringan lama ke VM:
compute.networks.usepada project -
Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan lama:
compute.networks.useExternalIpdi project -
Untuk menetapkan metadata instance VM bagi VM:
compute.instances.setMetadatadi project -
Untuk menyetel tag untuk VM:
compute.instances.setTagsdi VM -
Untuk menetapkan label bagi VM:
compute.instances.setLabelsdi VM -
Untuk menetapkan akun layanan yang akan digunakan VM:
compute.instances.setServiceAccountdi VM -
Untuk membuat disk baru untuk VM:
compute.disks.createpada project -
Untuk memasang disk yang ada dalam mode hanya baca atau baca-tulis:
compute.disks.usepada disk -
Untuk memasang disk yang ada dalam mode hanya baca:
compute.disks.useReadOnlypada disk
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 suatu 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 createberikut: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:
NAME_PATTERN: pola nama untuk VM. Gunakan urutan karakter hash (
#) agar Compute Engine menggantinya dengan urutan angka. Misalnya, menggunakanvm-#untuk pola nama akan menghasilkan VM dengan nama sepertivm-1danvm-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 yang telah ditentukan sebelumnya untuk VM yang akan dibuat. Jika Anda menggunakan flag ini dan menetapkan
COUNT,COUNTharus 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.1Compute Engine membuat sebanyak mungkin VM, hingga COUNT.Lebih besar dari 1dan lebih kecil dariCOUNTCompute Engine membuat minimal MIN_COUNTVM hingga maksimalCOUNTVM. JikaMIN_COUNTVM tidak dapat dibuat, permintaan akan gagal dan tidak ada VM yang dibuat.LOCATION_POLICY: zona yang akan disertakan atau dikecualikan dalam suatu region. Gunakan daftar pasangan nilai kunci, dengan zona sebagai kunci dan kebijakan sebagai nilai. Nilai yang valid untuk kebijakan ini adalah
allow, yang merupakan nilai 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-policyuntuk menetapkan zona. Tabel berikut menunjukkan nilai yang valid untuk tanda ini:Nilai Deskripsi ANY_SINGLE_ZONEMenerapkan 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. BALANCEDMencoba mendistribusikan VM secara merata di semua zona dalam region. ANYMemungkinkan distribusi VM di beberapa zona dalam satu region. Memilih zona yang memiliki resource tersedia dan yang memaksimalkan pemesanan zona yang tidak digunakan.
REST
Untuk membuat VM secara massal di suatu region, gunakan metode
instances.bulkInsertberikut: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:
PROJECT_ID: ID project.
REGION: region tempat VM dibuat.
NAME_PATTERN: pola nama untuk VM. Tentukan ini atau
perInstanceProperties. Gunakan urutan karakter hash (#) agar Compute Engine menggantinya dengan urutan angka. Misalnya, menggunakanvm-#untuk pola nama akan menghasilkan VM dengan nama sepertivm-1danvm-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 bawaan untuk VM yang akan dibuat. Tentukan ini atau
namePattern. Jika Anda menggunakan flag ini dan menetapkanCOUNT,COUNTharus 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.1Compute Engine membuat sebanyak mungkin VM, hingga COUNT.Lebih besar dari 1dan lebih kecil dariCOUNTCompute Engine membuat minimal MIN_COUNTVM hingga maksimalCOUNTVM. JikaMIN_COUNTVM tidak dapat dibuat, permintaan akan gagal dan tidak ada VM yang dibuat.LOCATION_POLICY: zona yang akan disertakan atau dikecualikan dalam suatu region. Gunakan daftar pasangan nilai kunci, dengan zona sebagai kunci dan kebijakan sebagai nilai. Nilai yang valid untuk kebijakan ini adalah
ALLOW, yang merupakan nilai 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
locationPolicyuntuk menentukan zona. Tabel berikut menunjukkan nilai yang valid untuk kolom ini:Nilai Deskripsi ANY_SINGLE_ZONEMenerapkan 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. BALANCEDMencoba mendistribusikan VM secara merata di semua zona dalam region. ANYMemungkinkan distribusi VM di beberapa zona dalam satu region. Memilih zona yang memiliki resource tersedia dan yang memaksimalkan pemesanan zona yang tidak digunakan.
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 createberikut.gcloud compute instances bulk create \ ( --name-pattern="NAME_PATTERN" | --predefined-names=[PREDEFINED_NAMES] ) \ --zone=ZONE \ --count=COUNT \ [ --min-count=MIN_COUNT ]Ganti kode berikut:
NAME_PATTERN: pola nama untuk VM. Gunakan urutan karakter hash (
#) agar Compute Engine menggantinya dengan urutan angka. Misalnya, menggunakanvm-#untuk pola nama akan menghasilkan VM dengan nama sepertivm-1danvm-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 yang telah ditentukan sebelumnya untuk VM yang akan dibuat. Jika Anda menggunakan flag ini dan menetapkan
COUNT,COUNTharus 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.1Compute Engine membuat sebanyak mungkin VM, hingga COUNT.Lebih besar dari 1dan lebih kecil dariCOUNTCompute Engine membuat minimal MIN_COUNTVM hingga maksimalCOUNTVM. JikaMIN_COUNTVM tidak dapat dibuat, permintaan akan gagal dan tidak ada VM yang dibuat.
REST
Untuk membuat VM secara massal dalam satu zona, gunakan metode
instances.bulkInsertberikut.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:
PROJECT_ID: ID project.
ZONE: zona tempat VM dibuat.
NAME_PATTERN: pola nama untuk VM. Tentukan ini atau
perInstanceProperties. Gunakan urutan karakter hash (#) agar Compute Engine menggantinya dengan urutan angka. Misalnya, menggunakanvm-#untuk pola nama akan menghasilkan VM dengan nama sepertivm-1danvm-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 bawaan untuk VM yang akan dibuat. Tentukan ini atau
namePattern. Jika Anda menggunakan flag ini dan menetapkanCOUNT,COUNTharus 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.1Compute Engine membuat sebanyak mungkin VM, hingga COUNT.Lebih besar dari 1dan lebih kecil dariCOUNTCompute Engine membuat minimal MIN_COUNTVM hingga maksimalCOUNTVM. JikaMIN_COUNTVM tidak dapat dibuat, permintaan akan gagal dan tidak ada VM yang dibuat.
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 ini:
VM_NAME.c.PROJECT_ID.internalsaat Anda mengaktifkan DNS globalVM_NAME.ZONE.c.PROJECT_ID.internalsaat Anda mengaktifkan DNS zona
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 createberikut.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:
NAME_PATTERN: pola nama untuk VM. Gunakan urutan karakter hash (
#) agar Compute Engine menggantinya dengan urutan angka. Misalnya, menggunakanvm-#untuk pola nama akan menghasilkan VM dengan nama sepertivm-1danvm-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 yang telah ditentukan sebelumnya untuk VM yang akan dibuat. Jika Anda menggunakan flag ini dan menetapkan
COUNT,COUNTharus sama dengan jumlah nama yang diberikan.[VM_NAME=HOSTNAME, ...]: daftar key-value pair nama yang telah ditentukan sebelumnya 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.1Compute Engine membuat sebanyak mungkin VM, hingga COUNT.Lebih besar dari 1dan lebih kecil dariCOUNTCompute Engine membuat minimal MIN_COUNTVM hingga maksimalCOUNTVM. JikaMIN_COUNTVM tidak dapat dibuat, permintaan akan gagal dan tidak ada VM yang dibuat.LOCATION_POLICY: zona yang akan disertakan atau dikecualikan dalam suatu region. Gunakan daftar pasangan nilai kunci, dengan zona sebagai kunci dan kebijakan sebagai nilai. Nilai yang valid untuk kebijakan ini adalah
ALLOW, yang merupakan nilai 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
locationPolicyuntuk menentukan zona. Tabel berikut menunjukkan nilai yang valid untuk kolom ini:Nilai Deskripsi ANY_SINGLE_ZONEMenerapkan 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. BALANCEDMencoba mendistribusikan VM secara merata di semua zona dalam region. ANYMemungkinkan distribusi VM di beberapa zona dalam satu region. Memilih zona yang memiliki resource tersedia dan yang memaksimalkan pemesanan zona yang tidak digunakan.
REST
Untuk membuat VM dengan nama host kustom secara massal di region tertentu, gunakan metode
instances.bulkInsertberikut: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:
PROJECT_ID: ID project.
REGION: region tempat VM dibuat.
NAME_PATTERN: pola nama untuk VM. Tentukan ini atau
perInstanceProperties. Gunakan urutan karakter hash (#) agar Compute Engine menggantinya dengan urutan angka. Misalnya, menggunakanvm-#untuk pola nama akan menghasilkan VM dengan nama sepertivm-1danvm-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 bawaan untuk VM yang akan dibuat. Tentukan ini atau
namePattern. Jika Anda menggunakan flag ini dan menetapkanCOUNT,COUNTharus sama dengan jumlah nama yang diberikan.HOSTNAME_1, HOSTNAME_2, ...: 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.
Misalnya, untuk membuat dua VM
vm-1danvm-2dengan nama host kustommy-host1234.example.comdantest.example.com, tentukan propertihostnamediperInstancePropertiessebagai 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.1Compute Engine membuat sebanyak mungkin VM, hingga COUNT.Lebih besar dari 1dan lebih kecil dariCOUNTCompute Engine membuat minimal MIN_COUNTVM hingga maksimalCOUNTVM. JikaMIN_COUNTVM tidak dapat dibuat, permintaan akan gagal dan tidak ada VM yang dibuat.LOCATION_POLICY: zona yang akan disertakan atau dikecualikan dalam suatu region. Gunakan daftar pasangan nilai kunci, dengan zona sebagai kunci dan kebijakan sebagai nilai. Nilai yang valid untuk kebijakan ini adalah
ALLOW, yang merupakan nilai 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
locationPolicyuntuk menentukan zona. Tabel berikut menunjukkan nilai yang valid untuk kolom ini:Nilai Deskripsi ANY_SINGLE_ZONEMenerapkan 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. BALANCEDMencoba mendistribusikan VM secara merata di semua zona dalam region. ANYMemungkinkan distribusi VM di beberapa zona dalam satu region. Memilih zona yang memiliki resource tersedia dan yang memaksimalkan pemesanan zona yang tidak digunakan.
Memeriksa status permintaan untuk membuat VM secara massal
Saat Anda membuat permintaan mutasi, Compute Engine akan menampilkan resource
operationyang dapat Anda polling untuk mendapatkan status operasi. Untuk mengetahui informasi selengkapnya, lihat Menangani respons API.Untuk mendapatkan status permintaan penyisipan massal, kirim permintaan
GETHTTP 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:
PROJECT_ID: ID project tempat Anda membuat VMREGION: region tempat Anda membuat VMZONE: zona tempat Anda membuat VMOPERATION_ID: ID operasi penyisipan massal
Objek
instancesBulkInsertOperationMetadatadalam respons berisi detail tentang operasi berdasarkan per zona di kolomperLocationStatus. Untuk setiap zona yang disertakan dalam permintaan pembuatan massal,perLocationStatusberisi kolom berikut:status: Statusnya adalah salah satu dari berikut ini:CREATING: Pembuatan VM sedang berlangsung di zona.ROLLING_BACK: Permintaan gagal di zona dan sedang di-roll back.DONE: Pembuatan atau rollback VM telah berhasil diselesaikan di zona.
targetVmCount: Jumlah VM yang coba dibuat Compute Engine di zona. Compute Engine menentukan jumlah ini setelah pemeriksaan awal, dan jumlah ini tidak berubah selama operasi. Saat Anda memeriksa status operasi, kolom ini selalu ada untuk setiap zona.createdVmCount: Jumlah VM yang sudah dibuat di zona. Nilai ini tidak boleh melebihitargetVmCountuntuk zona tertentu.failedToCreateVmCount: Jumlah VM yang gagal dibuat di zona.deletedVmCount: Jumlah VM yang dihapus di zona sebagai bagian dari pengembalian operasi yang gagal.
Kolom
progressdalam respons menunjukkan persentase penyelesaian operasi.Status operasi penyisipan massal adalah
RUNNINGhingga 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:
{ "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 operasi telah selesai 2%.
Operasi akan menampilkan status
DONEsaat Compute Engine berhasil membuat setidaknya jumlah minimum VM yang ditentukan olehminCount, atau saat Compute Engine menyelesaikan rollback permintaan. Setelah berhasil membuat VM dalam jumlah 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 mengetahui 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
Dari
Operationyang ditampilkan oleh permintaan, dapatkan nilai propertioperationGroupId.Gunakan properti
operationGroupIdsebagai filter dengan perintahgcloud compute operations listuntuk 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 hal berikut:
Dari daftar operasi,
targetLinkmerepresentasikan jalur VM. Gunakan perintahgcloud compute instances describedengan jalur ini sebagai nama VM untuk mendapatkan properti VM:gcloud compute instances describe VM_NAME
Gunakan perintah
gcloud compute instances listdengan 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 listuntuk mendapatkan properti VM dari semua zona dan region, lalu filter berdasarkan label yang unik untuk instance atau berdasarkan namanya:gcloud compute instances list \ --filter=(name=VM_NAME_1) OR (name=VM_NAME_2)
REST
Dari
Operationyang ditampilkan oleh permintaan, dapatkan nilai propertioperationGroupId.Gunakan properti
operationGroupIduntuk 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.aggregatedListdan sertakan propertioperationGroupIdsebagai 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.getdan sertakan propertioperationGroupIddalam 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 hal berikut:
Dari daftar operasi,
targetLinkmerepresentasikan jalur VM. Gunakan metodeinstances.getdengan 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.getdengan 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.aggregatedListuntuk mendapatkan properti VM dari semua zona dan region, serta memfilter berdasarkan label yang unik untuk instance atau berdasarkan namanya:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/aggregated/instances?filter=(name=VM_NAME_1) OR (name=VM_NAME_2)
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 sekumpulan region, permintaan akan memeriksa kapasitas terlebih dahulu. Jika kapasitas tidak mencukupi, permintaan akan langsung gagal dan mencoba lagi dengan region berikutnya dalam set.
Tentukan jumlah VM yang akan dibuat dalam satu zona.
nTarget = 1000Tentukan region tempat VM akan dibuat.
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
Membuat VM secara massal dalam satu zona
pada jenis mesin
Kode semu berikut menjelaskan cara membuat beberapa VM di satu zona pada jenis mesin tertentu. 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.
Tentukan jumlah VM yang akan dibuat dan region tempat VM akan dibuat.
nTarget = 1000 region = "us-central1"Tentukan kelompok mesin yang akan digunakan untuk mencoba membuat VM.
acceptableMachineFamilies = ["n2","c2","e2","n1"]Lakukan iterasi pada kumpulan jenis mesin dan coba buat VM pada jenis mesin hingga berhasil.
for family in acceptableMachineFamilies: call bulk APIs: region=region, count=nTarget, machineFamily=family if request succeeds and the operation succeeds: break
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.
Tentukan jumlah VM yang akan dibuat, penghitung untuk melacak jumlah total 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 = ""Kirim 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 createdTerus kirim 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
Membuat VM secara massal dan melihat statusnya
Prosedur berikut menunjukkan cara membuat grup VM dengan nama bawaan, lalu melihat statusnya:
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
perInstancePropertiesuntuk menentukan nama.call bulk API(zone=targetZone, count=nTarget, names=perInstanceProperties)Dapatkan detail VM menggunakan metode
instances.listdengan filter untuk nama VM yang detailnya akan ditampilkan.instances.list(filter=(name = "instance-1") OR (name = "instance-2") ...)
Langkah berikutnya
Setelah membuat VM secara massal, lakukan salah satu atau kedua hal berikut untuk menyederhanakan pengelolaan VM tersebut:
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.
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 2025-10-19 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-10-19 UTC."],[],[]] -