Метод create

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

HTTP-запрос

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

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

{
  "folderId": "string",
  "name": "string",
  "description": "string",
  "labels": "object",
  "zoneId": "string",
  "platformId": "string",
  "resourcesSpec": {
    "memory": "string",
    "cores": "string",
    "coreFraction": "string",
    "gpus": "string"
  },
  "metadata": "object",
  "bootDiskSpec": {
    "mode": "string",
    "deviceName": "string",
    "autoDelete": true,

    // `bootDiskSpec` включает только одно из полей `diskSpec`, `diskId`
    "diskSpec": {
      "name": "string",
      "description": "string",
      "typeId": "string",
      "size": "string",

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

    },
    "diskId": "string",
    // конец списка возможных полей`bootDiskSpec`

  },
  "secondaryDiskSpecs": [
    {
      "mode": "string",
      "deviceName": "string",
      "autoDelete": true,

      // `secondaryDiskSpecs[]` включает только одно из полей `diskSpec`, `diskId`
      "diskSpec": {
        "name": "string",
        "description": "string",
        "typeId": "string",
        "size": "string",

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

      },
      "diskId": "string",
      // конец списка возможных полей`secondaryDiskSpecs[]`

    }
  ],
  "networkInterfaceSpecs": [
    {
      "subnetId": "string",
      "primaryV4AddressSpec": {
        "address": "string",
        "oneToOneNatSpec": {
          "ipVersion": "string"
        }
      },
      "primaryV6AddressSpec": {
        "address": "string",
        "oneToOneNatSpec": {
          "ipVersion": "string"
        }
      }
    }
  ],
  "hostname": "string",
  "schedulingPolicy": {
    "preemptible": true
  },
  "serviceAccountId": "string",
  "networkSettings": {
    "type": "string"
  }
}
Поле Описание
folderId string

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

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

name string

Имя виртуальной машины.

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

description string

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

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

labels object

Метки ресурса в формате key:value.

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

zoneId string

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

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

platformId string

Обязательное поле. Идентификатор аппаратной платформы виртуальной машины. Это поле влияет на допустимые значения поля resourcesSpec.

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

resourcesSpec object

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

resourcesSpec.
memory
string (int64)

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

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

resourcesSpec.
cores
string (int64)

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

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

resourcesSpec.
coreFraction
string (int64)

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

Например, если требуется только 5% производительности CPU, можно задать значение core_fraction=5. Дополнительные сведения см. в разделе Уровни производительности vCPU.

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

resourcesSpec.
gpus
string (int64)

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

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

metadata object

Метаданные, назначаемые данной виртуальной машине, в формате пар ключ:значение. Сюда входят пользовательские метаданные и предопределенные ключи. Общий размер всех ключей и значений не должен превышать 512 КБ.

Значениями являются строки и используются только программами, которые настраивают виртуальную машину. Значения должны быть не более 256 КБ.

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

bootDiskSpec object

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

bootDiskSpec.
mode
string
Режим, в котором необходимо подключить этот диск.
  • READ_ONLY: Доступ на чтение.
  • READ_WRITE: Доступ на чтение и запись. Значение по умолчанию.
bootDiskSpec.
deviceName
string

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

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

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

bootDiskSpec.
autoDelete
boolean (boolean)

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

bootDiskSpec.
diskSpec
object
Спецификация диска.
bootDiskSpec включает только одно из полей diskSpec, diskId

bootDiskSpec.
diskSpec.
name
string

Имя диска.

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

bootDiskSpec.
diskSpec.
description
string

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

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

bootDiskSpec.
diskSpec.
typeId
string

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

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

bootDiskSpec.
diskSpec.
size
string (int64)

Обязательное поле. Размер диска в байтах.

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

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

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

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

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

Идентификатор снимка для восстановления диска.

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

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

Идентификатор диска, который должен быть подключен.

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

secondaryDiskSpecs[] object

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

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

secondaryDiskSpecs[].
mode
string
Режим, в котором необходимо подключить этот диск.
  • READ_ONLY: Доступ на чтение.
  • READ_WRITE: Доступ на чтение и запись. Значение по умолчанию.
secondaryDiskSpecs[].
deviceName
string

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

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

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

secondaryDiskSpecs[].
autoDelete
boolean (boolean)

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

secondaryDiskSpecs[].
diskSpec
object
Спецификация диска.
secondaryDiskSpecs[] включает только одно из полей diskSpec, diskId

secondaryDiskSpecs[].
diskSpec.
name
string

Имя диска.

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

secondaryDiskSpecs[].
diskSpec.
description
string

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

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

secondaryDiskSpecs[].
diskSpec.
typeId
string

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

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

secondaryDiskSpecs[].
diskSpec.
size
string (int64)

Обязательное поле. Размер диска в байтах.

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

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

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

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

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

Идентификатор снимка для восстановления диска.

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

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

Идентификатор диска, который должен быть подключен.

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

networkInterfaceSpecs[] object

Обязательное поле. Конфигурация сети для виртуальной машины. Указывает, как должен быть настроен сетевой интерфейс для взаимодействия с другими сервисами во внутренней сети и в интернете. В настоящее время для каждой виртуальной машины поддерживается только один сетевой интерфейс.

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

networkInterfaceSpecs[].
subnetId
string

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

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

networkInterfaceSpecs[].
primaryV4AddressSpec
object

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

networkInterfaceSpecs[].
primaryV4AddressSpec.
address
string

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

networkInterfaceSpecs[].
primaryV4AddressSpec.
oneToOneNatSpec
object

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

networkInterfaceSpecs[].
primaryV4AddressSpec.
oneToOneNatSpec.
ipVersion
string

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

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

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

networkInterfaceSpecs[].
primaryV6AddressSpec.
address
string

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

networkInterfaceSpecs[].
primaryV6AddressSpec.
oneToOneNatSpec
object

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

networkInterfaceSpecs[].
primaryV6AddressSpec.
oneToOneNatSpec.
ipVersion
string

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

  • IPV4: IPv4-адрес, например 192.0.2.235.
  • IPV6: Адрес IPv6. На данный момент не доступен.
hostname string

Имя хоста виртуальной машины. Это поле используется для генерации значения Instance.fqdn. Имя хоста должно быть уникальным в пределах сети и региона. Если не указано, то имя хоста будет равно Instance.id виртуальной машины и FQDN будет <id>.auto.internal. В противном случае FQDN будет <hostname>.<region_id>.internal.

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

schedulingPolicy object

Конфигурация политики планирования.

schedulingPolicy.
preemptible
boolean (boolean)

Если значение равно true — будет создана прерываемая виртуальная машина. Дополнительные сведения см. в разделе Прерываемые виртуальные машины.

serviceAccountId string

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

networkSettings object

Сетевые настройки.

networkSettings.
type
string

Не указывайте это поле, сетевые настройки пока не поддерживаются.

  • STANDARD: Стандартная сеть.
  • SOFTWARE_ACCELERATED: Сеть с программным ускорением.
  • HARDWARE_ACCELERATED: Сеть с аппаратным ускорением (этот тип пока недоступен, значение зарезервировано для использования в будущем).

Ответ

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.