Метод create

Создает группу виртуальных машин в указанном каталоге. Метод запускает операцию, которая может быть отменена другой операцией.

HTTP-запрос

POST https://compute.api.cloud.yandex.net/compute/v1/instanceGroups

Параметры в теле запроса

{
  "folderId": "string",
  "name": "string",
  "description": "string",
  "labels": "object",
  "instanceTemplate": {
    "description": "string",
    "labels": "object",
    "platformId": "string",
    "resourcesSpec": {
      "memory": "string",
      "cores": "string",
      "coreFraction": "string",
      "gpus": "string"
    },
    "metadata": "object",
    "bootDiskSpec": {
      "mode": "string",
      "deviceName": "string",
      "diskSpec": {
        "description": "string",
        "typeId": "string",
        "size": "string",

        // `instanceTemplate.bootDiskSpec.diskSpec` включает только одно из полей `imageId`, `snapshotId`
        "imageId": "string",
        "snapshotId": "string",
        // конец списка возможных полей`instanceTemplate.bootDiskSpec.diskSpec`

      }
    },
    "secondaryDiskSpecs": [
      {
        "mode": "string",
        "deviceName": "string",
        "diskSpec": {
          "description": "string",
          "typeId": "string",
          "size": "string",

          // `instanceTemplate.secondaryDiskSpecs[].diskSpec` включает только одно из полей `imageId`, `snapshotId`
          "imageId": "string",
          "snapshotId": "string",
          // конец списка возможных полей`instanceTemplate.secondaryDiskSpecs[].diskSpec`

        }
      }
    ],
    "networkInterfaceSpecs": [
      {
        "networkId": "string",
        "subnetIds": [
          "string"
        ],
        "primaryV4AddressSpec": {
          "oneToOneNatSpec": {
            "ipVersion": "string"
          }
        },
        "primaryV6AddressSpec": {
          "oneToOneNatSpec": {
            "ipVersion": "string"
          }
        }
      }
    ],
    "schedulingPolicy": {
      "preemptible": true
    }
  },
  "scalePolicy": {
    "fixedScale": {
      "size": "string"
    }
  },
  "deployPolicy": {
    "maxUnavailable": "string",
    "maxDeleting": "string",
    "maxCreating": "string",
    "maxExpansion": "string",
    "startingDuration": "string",
    "startupDuration": "string"
  },
  "allocationPolicy": {
    "zones": [
      {
        "zoneId": "string"
      }
    ]
  },
  "loadBalancerSpec": {
    "targetGroupSpec": {
      "name": "string",
      "description": "string",
      "labels": "object"
    }
  },
  "healthChecksSpec": {
    "healthCheckSpecs": [
      {
        "interval": "string",
        "timeout": "string",
        "unhealthyThreshold": "string",
        "healthyThreshold": "string",

        // `healthChecksSpec.healthCheckSpecs[]` включает только одно из полей `tcpOptions`, `httpOptions`
        "tcpOptions": {
          "port": "string"
        },
        "httpOptions": {
          "port": "string",
          "path": "string"
        },
        // конец списка возможных полей`healthChecksSpec.healthCheckSpecs[]`

      }
    ]
  },
  "serviceAccountId": "string"
}
Поле Описание
folderId string

Обязательное поле. Идентификатор каталога для создания группы виртуальных машин. Чтобы получить идентификатор каталога, используйте запрос list.

name string

Имя группы виртуальных машин.

Значение должно соответствовать регулярному выражению |[a-z][-a-z0-9]{1,61}[a-z0-9].

description string

Описание группы виртуальных машин.

Максимальная длина строки в символах — 256.

labels object

Метки ресурса в формате ключ:значение.

Не более 64 на ресурс. Длина строки в символах для каждого ключа должна быть от 1 до 63. Каждый ключ должен соответствовать регулярному выражению [a-z][-_0-9a-z]. Максимальная длина строки в символах для каждого значения — 63. Каждое значение должно соответствовать регулярному выражению [-_0-9a-z].

instanceTemplate object

Обязательное поле. Шаблон виртуальной машины, на основе которого создается группа ВМ.

instanceTemplate.
description
string

Описание шаблона виртуальной машины.

Максимальная длина строки в символах — 256.

instanceTemplate.
labels
object

Метки ресурса в формате ключ:значение.

Не более 64 на ресурс. Длина строки в символах для каждого ключа должна быть от 1 до 63. Каждый ключ должен соответствовать регулярному выражению [a-z][-_0-9a-z]. Максимальная длина строки в символах для каждого значения — 63. Каждое значение должно соответствовать регулярному выражению [-_0-9a-z].

instanceTemplate.
platformId
string

Идентификатор аппаратной платформы виртуальной машины. Платформа позволяет создавать виртуальные машины с большим объемом памяти, количеством ядер и высокой производительностью. Дополнительные сведения см. в разделе Платформы.

instanceTemplate.
resourcesSpec
object

Обязательное поле. Вычислительные ресурсы виртуальной машины, такие как объем памяти и количество ядер.

instanceTemplate.
resourcesSpec.
memory
string (int64)

Объем памяти в байтах, доступный виртуальной машине.

Максимальное значение — 274877906944.

instanceTemplate.
resourcesSpec.
cores
string (int64)

Количество доступных ядер.

Значение должно быть равно 1, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 или 32.

instanceTemplate.
resourcesSpec.
coreFraction
string (int64)

Базовый уровень производительности CPU с возможностью повышения производительности выше этого уровня. Поле устанавливает базовую производительность для каждого ядра.

Значение должно быть равно 0, 5, 20, 50 или 100.

instanceTemplate.
resourcesSpec.
gpus
string (int64)

Количество GPU, доступных виртуальной машине.

Значение должно быть равно 0, 1, 2 или 4.

instanceTemplate.
metadata
object

Метаданные, назначаемые этому шаблону виртуальной машины, в формате ключ:значение. Включает произвольные пользовательские метаданные и предзаданные ключи.

Например, можно использовать метаданные для доставки открытого ключа SSH на виртуальную машину. Дополнительные сведения см. в разделе Метаданные виртуальной машины.

Не более 128 на ресурс. Длина строки в символах для каждого ключа должна быть от 1 до 63. Каждый ключ должен соответствовать регулярному выражению [a-z][-_0-9a-z]*. Максимальная длина строки в символах для каждого значения — 262144.

instanceTemplate.
bootDiskSpec
object

Обязательное поле. Спецификация загрузочного диска, который будет подключен к виртуальной машине.

instanceTemplate.
bootDiskSpec.
mode
string

Обязательное поле. Режим доступа к ресурсу Disk.

  • READ_ONLY: Доступ на чтение.
  • READ_WRITE: Доступ на чтение и запись.
instanceTemplate.
bootDiskSpec.
deviceName
string

Cерийный номер, который на виртуальной машине с операционной системой Linux отображается в директории /dev/disk/by-id/.

Это значение может использоваться для ссылки на устройство внутри виртуальной машины при монтировании, изменении размера и т. д.

Значение должно соответствовать регулярному выражению |[a-z][-_0-9a-z]{0,19}.

instanceTemplate.
bootDiskSpec.
diskSpec
object

Обязательное поле. Спецификация загрузочного диска, для подключения к виртуальной машине. Дополнительные сведения см. в разделе Disks.

instanceTemplate.
bootDiskSpec.
diskSpec.
description
string

Описание диска.

Максимальная длина строки в символах — 256.

instanceTemplate.
bootDiskSpec.
diskSpec.
typeId
string

Обязательное поле. Идентификатор типа диска.

Значение должно соответствовать регулярному выражению network-nvme|network-hdd.

instanceTemplate.
bootDiskSpec.
diskSpec.
size
string (int64)

Размер диска в байтах.

Допустимые значения — от 4194304 до 4398046511104 включительно.

instanceTemplate.
bootDiskSpec.
diskSpec.
imageId
string
instanceTemplate.bootDiskSpec.diskSpec включает только одно из полей imageId, snapshotId

Идентификатор образа, из которого будет создан диск.

Максимальная длина строки в символах — 50.

instanceTemplate.
bootDiskSpec.
diskSpec.
snapshotId
string
instanceTemplate.bootDiskSpec.diskSpec включает только одно из полей imageId, snapshotId

Идентификатор снимка, из которого будет создан диск.

Максимальная длина строки в символах — 50.

instanceTemplate.
secondaryDiskSpecs[]
object

Массив дополнительных дисков, которые будут подключенны к виртуальной машине.

Максимальное количество элементов — 3.

instanceTemplate.
secondaryDiskSpecs[].
mode
string

Обязательное поле. Режим доступа к ресурсу Disk.

  • READ_ONLY: Доступ на чтение.
  • READ_WRITE: Доступ на чтение и запись.
instanceTemplate.
secondaryDiskSpecs[].
deviceName
string

Cерийный номер, который на виртуальной машине с операционной системой Linux отображается в директории /dev/disk/by-id/.

Это значение может использоваться для ссылки на устройство внутри виртуальной машины при монтировании, изменении размера и т. д.

Значение должно соответствовать регулярному выражению |[a-z][-_0-9a-z]{0,19}.

instanceTemplate.
secondaryDiskSpecs[].
diskSpec
object

Обязательное поле. Спецификация загрузочного диска, для подключения к виртуальной машине. Дополнительные сведения см. в разделе Disks.

instanceTemplate.
secondaryDiskSpecs[].
diskSpec.
description
string

Описание диска.

Максимальная длина строки в символах — 256.

instanceTemplate.
secondaryDiskSpecs[].
diskSpec.
typeId
string

Обязательное поле. Идентификатор типа диска.

Значение должно соответствовать регулярному выражению network-nvme|network-hdd.

instanceTemplate.
secondaryDiskSpecs[].
diskSpec.
size
string (int64)

Размер диска в байтах.

Допустимые значения — от 4194304 до 4398046511104 включительно.

instanceTemplate.
secondaryDiskSpecs[].
diskSpec.
imageId
string
instanceTemplate.secondaryDiskSpecs[].diskSpec включает только одно из полей imageId, snapshotId

Идентификатор образа, из которого будет создан диск.

Максимальная длина строки в символах — 50.

instanceTemplate.
secondaryDiskSpecs[].
diskSpec.
snapshotId
string
instanceTemplate.secondaryDiskSpecs[].diskSpec включает только одно из полей imageId, snapshotId

Идентификатор снимка, из которого будет создан диск.

Максимальная длина строки в символах — 50.

instanceTemplate.
networkInterfaceSpecs[]
object

Обязательное поле. Массив сетевых интерфейсов, которые будут присоединены к виртуальной машине.

Должен содержать ровно 1 элемент.

instanceTemplate.
networkInterfaceSpecs[].
networkId
string

Идентификатор облачной сети.

instanceTemplate.
networkInterfaceSpecs[].
subnetIds[]
string

Идентификаторы подсетей.

instanceTemplate.
networkInterfaceSpecs[].
primaryV4AddressSpec
object

Основной IPv4-адрес, который назначен виртуальной машине для данного сетевого интерфейса.

instanceTemplate.
networkInterfaceSpecs[].
primaryV4AddressSpec.
oneToOneNatSpec
object

Конфигурация One-to-one NAT. Если отсутствует, то виртуальной машина не будет доступа из интернета.

instanceTemplate.
networkInterfaceSpecs[].
primaryV4AddressSpec.
oneToOneNatSpec.
ipVersion
string

Версия IP для публичного IP-адреса.

  • IPV4: IPv4-адрес, например 192.168.0.0.
  • IPV6: IPv6-адрес, на данный момент не доступен.
instanceTemplate.
networkInterfaceSpecs[].
primaryV6AddressSpec
object

Основной IPv6-адрес, который назначен виртуальной машине для данного сетевого интерфейса. IPv6 еще не доступен.

instanceTemplate.
networkInterfaceSpecs[].
primaryV6AddressSpec.
oneToOneNatSpec
object

Конфигурация One-to-one NAT. Если отсутствует, то виртуальной машина не будет доступа из интернета.

instanceTemplate.
networkInterfaceSpecs[].
primaryV6AddressSpec.
oneToOneNatSpec.
ipVersion
string

Версия IP для публичного IP-адреса.

  • IPV4: IPv4-адрес, например 192.168.0.0.
  • IPV6: IPv6-адрес, на данный момент не доступен.
instanceTemplate.
schedulingPolicy
object

Политика планирования.

instanceTemplate.
schedulingPolicy.
preemptible
boolean (boolean)

Прерываемые виртуальные машины будут принудительно остановлены в срок, не превышающий 24 часа с момента их создания. Остановленные виртуальные машины можно запустить повторно, без потери данных. Дополнительные сведения см. в разделе Прерываемые виртуальные машины.

scalePolicy object

Обязательное поле. Политика масштабирования группы виртуальных машин.

scalePolicy.
fixedScale
object
Политика масштабирования группы виртуальных машин.
scalePolicy.
fixedScale.
size
string (int64)

Количество виртуальных машин в группе ВМ.

Допустимые значения — от 1 до 100 включительно.

deployPolicy object

Обязательное поле. Политика развертывания группы виртуальных машин.

deployPolicy.
maxUnavailable
string (int64)

Максимальное количество запущенных виртуальных машин, которое можно одновременно отключить (остановить или удалить) в процессе обновления группы. Если maxExpansion не указано или равно нулю, maxUnavailable должно быть установлено ненулевое значение.

Допустимые значения — от 0 до 100 включительно.

deployPolicy.
maxDeleting
string (int64)

Максимальное количество удаляемых одновременно виртуальных машин.

Допустимые значения — от 0 до 100 включительно.

deployPolicy.
maxCreating
string (int64)

Максимальное количество создаваемых одновременно виртуальных машин.

Допустимые значения — от 0 до 100 включительно.

deployPolicy.
maxExpansion
string (int64)

Максимальное количество виртуальных машин, на которое можно превысить целевой размер группы в процессе ее обновления. Если maxUnavailable не указано или равно нулю, maxExpansion должно быть установлено ненулевое значение.

Допустимые значения — от 0 до 100 включительно.

deployPolicy.
startingDuration
string

Устарел. Будет удален в ближайшее время. Используйте startupDuration.

Допустимые значения — от 0 seconds до 3600 seconds включительно.

deployPolicy.
startupDuration
string

Продолжительность запуска виртуальной машины. Виртуальная машина будет запущена и начнет получать трафик только после того, как истечет startupDuration и будут пройдены все проверки состояния. Подробное описание см. в ManagedInstanceStatus.

Допустимые значения — от 0 seconds до 3600 seconds включительно.

allocationPolicy object

Обязательное поле. Политика распределения группы виртуальных машин по зонам и регионам.

allocationPolicy.
zones[]
object

Обязательное поле. Список зон доступности.

Минимальное количество элементов — 1.

allocationPolicy.
zones[].
zoneId
string

Обязательное поле. Идентификатор зоны доступности, где находится виртуальная машина.

loadBalancerSpec object

Спецификация балансировщика нагрузки.

loadBalancerSpec.
targetGroupSpec
object

Спецификация целевой группы, к которой будет добавлена группа виртуальных машин. Дополнительные сведения см. в разделе Целевые ресурсы и группы.

loadBalancerSpec.
targetGroupSpec.
name
string

Имя целевой группы.

Значение должно соответствовать регулярному выражению |[a-z][-a-z0-9]{1,61}[a-z0-9].

loadBalancerSpec.
targetGroupSpec.
description
string

Описание целевой группы.

Максимальная длина строки в символах — 256.

loadBalancerSpec.
targetGroupSpec.
labels
object

Метки ресурса в формате ключ:значение.

Не более 64 на ресурс. Длина строки в символах для каждого ключа должна быть от 1 до 63. Каждый ключ должен соответствовать регулярному выражению [a-z][-_0-9a-z]. Максимальная длина строки в символах для каждого значения — 63. Каждое значение должно соответствовать регулярному выражению [-_0-9a-z].

healthChecksSpec object

Спецификация проверки состояния. Дополнительные сведения см. в разделе Проверка состояния ресурсов.

healthChecksSpec.
healthCheckSpecs[]
object

Обязательное поле. Спецификация проверки состояния. Дополнительные сведения см. в разделе Проверка состояния ресурсов.

Минимальное количество элементов — 1.

healthChecksSpec.
healthCheckSpecs[].
interval
string

Интервал проверок. Значение по умолчанию — 2 секунды.

Допустимые значения — от 1 seconds до 300 seconds включительно.

healthChecksSpec.
healthCheckSpecs[].
timeout
string

Время ожидания ответа. Значение по умолчанию — 1 секунда.

Допустимые значения — от 1 seconds до 60 seconds включительно.

healthChecksSpec.
healthCheckSpecs[].
unhealthyThreshold
string (int64)

Количество неудачных проверок, после которого виртуальная машина будет считаться неработающей. Значение по умолчанию — 2.

Допустимые значения — от 2 до 10 включительно.

healthChecksSpec.
healthCheckSpecs[].
healthyThreshold
string (int64)

Количество успешных проверок, после которого виртуальная машина будет считаться работающей нормально. Значение по умолчанию — 2.

Допустимые значения — от 2 до 10 включительно.

healthChecksSpec.
healthCheckSpecs[].
tcpOptions
object
Параметры для проверки состояний по протоколу TCP.
healthChecksSpec.healthCheckSpecs[] включает только одно из полей tcpOptions, httpOptions

healthChecksSpec.
healthCheckSpecs[].
tcpOptions.
port
string (int64)

Порт TCP для проверки состояния.

Допустимые значения — от 1 до 32767 включительно.

healthChecksSpec.
healthCheckSpecs[].
httpOptions
object
Параметры для проверки состояний по протоколу HTTP.
healthChecksSpec.healthCheckSpecs[] включает только одно из полей tcpOptions, httpOptions

healthChecksSpec.
healthCheckSpecs[].
httpOptions.
port
string (int64)

Порт HTTP для проверки состояния.

Допустимые значения — от 1 до 32767 включительно.

healthChecksSpec.
healthCheckSpecs[].
httpOptions.
path
string

URL, по которому будут выполняться проверки (для HTTP).

serviceAccountId string

Идентификатор сервисного аккаунта. Сервисный аккаунт используется для всех вызовов API, выполняемых компонентом Instance Groups от имени пользователя (например, создание экземпляров, добавление их в целевую группу балансировщика нагрузки и т. п.). Дополнительные сведения см. в разделе Сервисные аккаунты. Чтобы получить идентификатор сервисного аккаунта, используйте запрос list.

Ответ

HTTP Code: 200 - OK

{
  "id": "string",
  "description": "string",
  "createdAt": "string",
  "createdBy": "string",
  "modifiedAt": "string",
  "done": true,
  "metadata": "object",

  //  включает только одно из полей `error`, `response`
  "error": {
    "code": "integer",
    "message": "string",
    "details": [
      "object"
    ]
  },
  "response": "object",
  // конец списка возможных полей

}

Ресурс Operation. Дополнительные сведения см. в разделе Объект Operation.

Поле Описание
id string

Идентификатор операции.

description string

Описание операции. Длина описания должна быть от 0 до 256 символов.

createdAt string (date-time)

Время создания ресурса в формате в RFC3339.

Строка в формате RFC3339.

createdBy string

Идентификатор пользователя или сервисного аккаунта, инициировавшего операцию.

modifiedAt string (date-time)

Время, когда ресурс Operation последний раз обновлялся. Значение в формате RFC3339.

Строка в формате RFC3339.

done boolean (boolean)

Если значение равно false — операция еще выполняется. Если true — операция завершена, и задано значение одного из полей error или response.

metadata object

Метаданные операции. Обычно в поле содержится идентификатор ресурса, над которым выполняется операция. Если метод возвращает ресурс Operation, в описании метода приведена структура соответствующего ему поля metadata.

error object
Описание ошибки в случае сбоя или отмены операции.
включает только одно из полей error, response

Описание ошибки в случае сбоя или отмены операции.

error.
code
integer (int32)

Код ошибки. Значение из списка google.rpc.Code.

error.
message
string

Текст ошибки.

error.
details[]
object

Список сообщений с подробными сведениями об ошибке.

response object
включает только одно из полей error, response

Результат операции в случае успешного завершения. Если исходный метод не возвращает никаких данных при успешном завершении, например метод Delete, поле содержит объект google.protobuf.Empty. Если исходный метод — это стандартный метод Create / Update, поле содержит целевой ресурс операции. Если метод возвращает ресурс Operation, в описании метода приведена структура соответствующего ему поля response.