Я бы придерживался официальных API GCP и Клиентских библиотек . В этом случае вам понадобится Compute Engine API
Чтобы создать экземпляр, вам нужно использовать метод instance.insert , вы можете попробовать API по ссылке, которую я предоставил наВнизу этой ссылки приведены примеры самых популярных компьютерных языков, поддерживаемых клиентскими библиотеками GCP. Чтобы добавить дополнительные параметры с помощью пользовательского интерфейса «Попробуйте это API», просто нажмите на символ +
Ниже приведено тело моего запроса, используемое с этим пользовательским интерфейсом, который работает
{
"kind": "compute#instance",
"name": "new-instance-1",
"zone": "projects/xxxxxxxxxxxxxxx/zones/us-central1-f",
"machineType": "projects/xxxxxxxxxx/zones/us-central1-f/machineTypes/n1-standard-1",
"displayDevice": {
"enableDisplay": false
},
"metadata": {
"kind": "compute#metadata",
"items": []
},
"tags": {
"items": []
},
"disks": [
{
"kind": "compute#attachedDisk",
"type": "PERSISTENT",
"boot": true,
"mode": "READ_WRITE",
"autoDelete": true,
"deviceName": "new-instance-1",
"initializeParams": {
"sourceImage": "projects/eip-images/global/images/debian-9-drawfork-v20191004",
"diskType": "projects/xxxxxxxxxx/zones/us-central1-f/diskTypes/pd-standard",
"diskSizeGb": "10"
},
"diskEncryptionKey": {}
}
],
"canIpForward": false,
"networkInterfaces": [
{
"kind": "compute#networkInterface",
"subnetwork": "projects/xxxxxxxxxxxx/regions/us-central1/subnetworks/default",
"accessConfigs": [
{
"kind": "compute#accessConfig",
"name": "External NAT",
"type": "ONE_TO_ONE_NAT",
"networkTier": "PREMIUM"
}
],
"aliasIpRanges": []
}
],
"description": "",
"labels": {},
"scheduling": {
"preemptible": false,
"onHostMaintenance": "MIGRATE",
"automaticRestart": true,
"nodeAffinities": []
},
"deletionProtection": false,
"reservationAffinity": {
"consumeReservationType": "ANY_RESERVATION"
},
"serviceAccounts": [
{
"email": "1060078476845-compute@developer.gserviceaccount.com",
"scopes": [
"https://www.googleapis.com/auth/devstorage.read_only",
"https://www.googleapis.com/auth/logging.write",
"https://www.googleapis.com/auth/monitoring.write",
"https://www.googleapis.com/auth/servicecontrol",
"https://www.googleapis.com/auth/service.management.readonly",
"https://www.googleapis.com/auth/trace.append"
]
}
Теперь он перемещается в хранилищеМногие типы сосут как диски и ведра, я предполагаю, что вы ссылаетесь на диски с моей предыдущей командой, при создании экземпляра создается загрузочный диск, и вы можете добавить несколько дисков во время создания.
Вотметод для создания просто диска , для присоединения существующего диска к экземпляру, используйте метод instances.attachDisk . Опять же, если вы указали несколько дисков во время создания, вы можете пропустить этот абзац
И каков более быстрый способ создания массовых виртуальных машин и дисков?
Это будет зависеть от ваших предпочтений, вы можете использовать оба, но лично мне нравится использовать команды gcloud из Cloud Shell .