Как написать реализацию облачного API GCP для сети, хранилища и вычислений - PullRequest
0 голосов
/ 08 октября 2019

Я пишу клиент для GCP Golang API SDK для сети, хранения и вычислений. Мне нужна помощь с правильной последовательностью звонков.

Является ли приведенный ниже код правильным способом создания дисков? Есть ли эффективный способ написания этого кода.

disk := new(compute.Disk) operation, e := service.Disks.Insert(project, zone, disk).Do()

Каковы эти другие конструкции - DisksInsertCall и т. Д. Они более эффективны для массового создания диска?

Я использую библиотеку https://godoc.org/google.golang.org/api/compute/. Это не дает мне правильные параметры и последовательность, необходимые для создания экземпляра или диска.

И каков более быстрый способ создания массовых виртуальных машин и дисков? 1. используя диспетчер развертывания ИЛИ 2. совершая прямые вызовы API с использованием подпрограмм go

1 Ответ

0 голосов
/ 22 октября 2019

Я бы придерживался официальных 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 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...