Метод 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
},
"serviceAccountId": "string"
},
"scalePolicy": {
// `scalePolicy` включает только одно из полей `fixedScale`, `autoScale`
"fixedScale": {
"size": "string"
},
"autoScale": {
"minZoneSize": "string",
"maxSize": "string",
"measurementDuration": "string",
"warmupDuration": "string",
"stabilizationDuration": "string",
"initialSize": "string",
"cpuUtilizationRule": {
"utilizationTarget": "number"
},
"customRules": [
{
"ruleType": "string",
"metricType": "string",
"metricName": "string",
"target": "number"
}
]
},
// конец списка возможных полей`scalePolicy`
},
"deployPolicy": {
"maxUnavailable": "string",
"maxDeleting": "string",
"maxCreating": "string",
"maxExpansion": "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 Имя группы виртуальных машин. Значение должно соответствовать регулярному выражению |
description | string Описание группы виртуальных машин. Максимальная длина строки в символах — 256. |
labels | object Метки ресурса в формате Не более 64 на ресурс. Длина строки в символах для каждого ключа должна быть от 1 до 63. Каждый ключ должен соответствовать регулярному выражению |
instanceTemplate | object Обязательное поле. Шаблон виртуальной машины, на основе которого создается группа ВМ. |
instanceTemplate. description |
string Описание шаблона виртуальной машины. Максимальная длина строки в символах — 256. |
instanceTemplate. labels |
object Метки ресурса в формате Не более 64 на ресурс. Длина строки в символах для каждого ключа должна быть от 1 до 63. Каждый ключ должен соответствовать регулярному выражению |
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, 34, 36, 40, 44, 48, 52, 56, 60 или 64. |
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. Каждый ключ должен соответствовать регулярному выражению |
instanceTemplate. bootDiskSpec |
object Обязательное поле. Спецификация загрузочного диска, который будет подключен к виртуальной машине. |
instanceTemplate. bootDiskSpec. mode |
string Обязательное поле. Режим доступа к ресурсу Disk.
|
instanceTemplate. bootDiskSpec. deviceName |
string Cерийный номер, который на виртуальной машине с операционной системой Linux отображается в директории /dev/disk/by-id/. Это значение может использоваться для ссылки на устройство внутри виртуальной машины при монтировании, изменении размера и т. д. Значение должно соответствовать регулярному выражению |
instanceTemplate. bootDiskSpec. diskSpec |
object Обязательное поле. Спецификация загрузочного диска, для подключения к виртуальной машине. Дополнительные сведения см. в разделе Диски. |
instanceTemplate. bootDiskSpec. diskSpec. description |
string Описание диска. Максимальная длина строки в символах — 256. |
instanceTemplate. bootDiskSpec. diskSpec. typeId |
string Обязательное поле. Идентификатор типа диска. |
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.
|
instanceTemplate. secondaryDiskSpecs[]. deviceName |
string Cерийный номер, который на виртуальной машине с операционной системой Linux отображается в директории /dev/disk/by-id/. Это значение может использоваться для ссылки на устройство внутри виртуальной машины при монтировании, изменении размера и т. д. Значение должно соответствовать регулярному выражению |
instanceTemplate. secondaryDiskSpecs[]. diskSpec |
object Обязательное поле. Спецификация загрузочного диска, для подключения к виртуальной машине. Дополнительные сведения см. в разделе Диски. |
instanceTemplate. secondaryDiskSpecs[]. diskSpec. description |
string Описание диска. Максимальная длина строки в символах — 256. |
instanceTemplate. secondaryDiskSpecs[]. diskSpec. typeId |
string Обязательное поле. Идентификатор типа диска. |
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 Конфигурация внешнего IP-адреса. Если не указана, то у виртуальной машины не будет доступа в интернет. |
instanceTemplate. networkInterfaceSpecs[]. primaryV4AddressSpec. oneToOneNatSpec. ipVersion |
string Версия IP для публичного IP-адреса.
|
instanceTemplate. networkInterfaceSpecs[]. primaryV6AddressSpec |
object Основной IPv6-адрес, который назначен виртуальной машине для данного сетевого интерфейса. IPv6 еще не доступен. |
instanceTemplate. networkInterfaceSpecs[]. primaryV6AddressSpec. oneToOneNatSpec |
object Конфигурация внешнего IP-адреса. Если не указана, то у виртуальной машины не будет доступа в интернет. |
instanceTemplate. networkInterfaceSpecs[]. primaryV6AddressSpec. oneToOneNatSpec. ipVersion |
string Версия IP для публичного IP-адреса.
|
instanceTemplate. schedulingPolicy |
object Политика планирования. |
instanceTemplate. schedulingPolicy. preemptible |
boolean (boolean) Прерываемые виртуальные машины будут принудительно остановлены в срок, не превышающий 24 часа с момента их создания. Остановленные виртуальные машины можно запустить повторно, без потери данных. Дополнительные сведения см. в разделе Прерываемые виртуальные машины. |
instanceTemplate. serviceAccountId |
string Идентификатор сервисного аккаунта для привязки к виртуальной машине. |
scalePolicy | object Обязательное поле. Политика масштабирования группы виртуальных машин. |
scalePolicy. fixedScale |
object Политика масштабирования группы виртуальных машин. scalePolicy включает только одно из полей fixedScale , autoScale |
scalePolicy. fixedScale. size |
string (int64) Количество виртуальных машин в группе ВМ. Допустимые значения — от 1 до 100 включительно. |
scalePolicy. autoScale |
object Политика автоматического масштабирования группы виртуальных машин. scalePolicy включает только одно из полей fixedScale , autoScale |
scalePolicy. autoScale. minZoneSize |
string (int64) Минимальное количество виртуальных машин в каждой зоне. Допустимые значения — от 0 до 100 включительно. |
scalePolicy. autoScale. maxSize |
string (int64) Максимальное общее количество виртуальных машин (по всем зонам). 0 означает максимальное значение — 100. Допустимые значения — от 0 до 100 включительно. |
scalePolicy. autoScale. measurementDuration |
string Обязательное поле. Время в секундах, отведенное на усреднение метрик. Допустимые значения — от 60 seconds до 600 seconds включительно. |
scalePolicy. autoScale. warmupDuration |
string Время прогрева виртуальной машины в секундах. В течение этого времени трафик подается на виртуальную машину, но метрики с этой машины не учитываются. Максимальное значение — 600 seconds. |
scalePolicy. autoScale. stabilizationDuration |
string Минимальный временной интервал в секундах для мониторинга, перед тем как Instance Groups сможет уменьшить количество виртуальных машин в группе. В течение этого времени размер группы не уменьшается, даже если новые значения метрики указывают, что он должен уменьшаться. Допустимые значения — от 60 seconds до 1800 seconds включительно. |
scalePolicy. autoScale. initialSize |
string (int64) Размер целевой группы. Минимальное значение — 1. |
scalePolicy. autoScale. cpuUtilizationRule |
object Определяет правило автомасштабирования на основе средней нагрузки CPU для группы виртуальных машин. |
scalePolicy. autoScale. cpuUtilizationRule. utilizationTarget |
number (double) Целевой уровень нагрузки CPU. Instance Groups будет поддерживать этот уровень для каждой зоны доступности. Допустимые значения — от 10 до 100 включительно. |
scalePolicy. autoScale. customRules[] |
object Определяет правило автомасштабирования на основе пользовательской метрики из Yandex Monitoring. Максимальное количество элементов — 1. |
scalePolicy. autoScale. customRules[]. ruleType |
string Обязательное поле. Тип правил применения пользовательской метрики. Это поле влияет на то, какая метка из пользовательской метрики должна использоваться:
|
scalePolicy. autoScale. customRules[]. metricType |
string Обязательное поле. Тип подсчета пользовательской метрики. Это поле влияет на то, как Instance Groups вычисляет среднее значение метрики.
Instance Groups вычисляет среднее значение метрики за период, указанный в поле
Instance Groups вычисляет средний прирост метрики за период, указанный в поле |
scalePolicy. autoScale. customRules[]. metricName |
string Обязательное поле. Название пользовательской метрики в Yandex Monitoring, которая должна использоваться для масштабирования. Значение должно соответствовать регулярному выражению |
scalePolicy. autoScale. customRules[]. target |
number (double) Целевое значение для пользовательской метрики. Instance Groups будет поддерживать этот уровень для каждой зоны доступности. Значение должно быть больше 0. |
deployPolicy | object Обязательное поле. Политика развертывания группы виртуальных машин. |
deployPolicy. maxUnavailable |
string (int64) Максимальное количество запущенных виртуальных машин, которое можно одновременно отключить (остановить или удалить) в процессе обновления группы. Если Допустимые значения — от 0 до 100 включительно. |
deployPolicy. maxDeleting |
string (int64) Максимальное количество удаляемых одновременно виртуальных машин. Значение 0 — любое количество виртуальных машин в рамках допустимых значений. Допустимые значения — от 0 до 100 включительно. |
deployPolicy. maxCreating |
string (int64) Максимальное количество создаваемых одновременно виртуальных машин. Значение 0 — любое количество виртуальных машин в рамках допустимых значений. Допустимые значения — от 0 до 100 включительно. |
deployPolicy. maxExpansion |
string (int64) Максимальное количество виртуальных машин, на которое можно превысить целевой размер группы в процессе ее обновления. Если Допустимые значения — от 0 до 100 включительно. |
deployPolicy. startupDuration |
string Продолжительность запуска виртуальной машины. Виртуальная машина будет запущена и начнет получать трафик только после того, как истечет startup_duration и будут пройдены все проверки работоспособности. Подробное описание см. в Допустимые значения — от 0 seconds до 3600 seconds включительно. |
allocationPolicy | object Обязательное поле. Политика распределения группы виртуальных машин по зонам и регионам. |
allocationPolicy. zones[] |
object Обязательное поле. Список зон доступности. Минимальное количество элементов — 1. |
allocationPolicy. zones[]. zoneId |
string Обязательное поле. Идентификатор зоны доступности, где находится виртуальная машина. |
loadBalancerSpec | object Спецификация балансировщика нагрузки. |
loadBalancerSpec. targetGroupSpec |
object Спецификация целевой группы, к которой будет добавлена группа виртуальных машин. Дополнительные сведения см. в разделе Целевые ресурсы и группы. |
loadBalancerSpec. targetGroupSpec. name |
string Имя целевой группы. Значение должно соответствовать регулярному выражению |
loadBalancerSpec. targetGroupSpec. description |
string Описание целевой группы. Максимальная длина строки в символах — 256. |
loadBalancerSpec. targetGroupSpec. labels |
object Метки ресурса в формате Не более 64 на ресурс. Длина строки в символах для каждого ключа должна быть от 1 до 63. Каждый ключ должен соответствовать регулярному выражению |
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. Значение должно быть равно 0, 2, 3, 4, 5, 6, 7, 8, 9 или 10. |
healthChecksSpec. healthCheckSpecs[]. healthyThreshold |
string (int64) Количество успешных проверок, после которого виртуальная машина будет считаться работающей нормально. Значение по умолчанию — 2. Значение должно быть равно 0, 2, 3, 4, 5, 6, 7, 8, 9 или 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) Если значение равно |
metadata | object Метаданные операции. Обычно в поле содержится идентификатор ресурса, над которым выполняется операция. Если метод возвращает ресурс Operation, в описании метода приведена структура соответствующего ему поля |
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, в описании метода приведена структура соответствующего ему поля |