Метод 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"
  },
  "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"
}
Поле Описание
folderId string

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

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

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].

zoneId string

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

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

platformId string

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

В настоящее время доступна только одна платформа - "standard-v1`. Эта платформа подходит для большинства задач. Эта платформа позволяет создавать машины различных типов: с большим объемом памяти, с большим количеством ядер, с высокой производительностью.

Значение должно соответствовать регулярному выражению standard-v1.

resourcesSpec object

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

resourcesSpec.
memory
string (int64)

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

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

resourcesSpec.
cores
string (int64)

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

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

resourcesSpec.
coreFraction
string (int64)

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

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

Значение должно быть равно 5.

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

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

Максимальная длина строки в символах — 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

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

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

networkInterfaceSpecs[] object

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

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

networkInterfaceSpecs[].
subnetId
string

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

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

networkInterfaceSpecs[].
primaryV4AddressSpec
object

Primary 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-адрес, например, 2001:0db8:85a3:0000:0000:8a2e:0370:7334.
networkInterfaceSpecs[].
primaryV6AddressSpec
object

Primary 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-адрес, например, 2001:0db8:85a3:0000:0000:8a2e:0370:7334.
hostname string

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

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

Ответ

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.

createdBy string

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

modifiedAt string (date-time)

Только для вывода. Время, когда ресурс Operation последний раз обновлялся. Значение в формате 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.