Yandex Cloud API (IAM, Resource Manager, Compute Cloud): Выключать машины на ночь и включать утром

Сценарий из mcp-everything. Актуально на 2026-10-24.

Экономия на тестовых стендах: ВМ работают только в рабочее время.

  1. По расписанию вечером вызывай POST /compute/v1/instances/{instanceId}:stop для каждой машины стенда, утром — POST /compute/v1/instances/{instanceId}:start.
  2. Каждый вызов возвращает Operation — проверь итог через GET /operations/{operationId}.
  3. Удобно помечать такие ВМ метками (labels, например env = test) и выбирать их фильтром в GET /compute/v1/instances.
  4. Если сервис ответил 409 ABORTED (параллельная операция над той же машиной) или 503 — повтори через несколько секунд.
for ID in $(curl -s -G https://compute.api.cloud.yandex.net/compute/v1/instances -H "Authorization: Bearer $IAM_TOKEN" \
              -d folderId=<id каталога> | jq -r '.instances[] | select(.labels.env == "test") | .id'); do
  curl -s -X POST "https://compute.api.cloud.yandex.net/compute/v1/instances/$ID:stop" -H "Authorization: Bearer $IAM_TOKEN"
done

Базовые URL

Авторизация

Тип: Bearer-токен

Все запросы, кроме получения токена, передают IAM-токен в заголовке:

IAM-токен получают методом POST /iam/v1/tokens в обмен на OAuth-токен аккаунта на Яндексе или JWT сервисного аккаунта.

Authorization: Bearer <IAM-токен>

Методы сценария

GET /compute/v1/instances — Список виртуальных машин

Параметр Где Тип Обяз. Описание
folderId query string да ID каталога
pageSize query string нет Размер страницы
pageToken query string нет Токен следующей страницы
filter query string нет Фильтр: условия, объединённые AND
orderBy query string нет Сортировка, например createdAt desc; по умолчанию id asc

POST /compute/v1/instances/{instanceId}:start — Запуск виртуальной машины

Параметр Где Тип Обяз. Описание
instanceId path string да ID виртуальной машины

POST /compute/v1/instances/{instanceId}:stop — Остановка виртуальной машины

Параметр Где Тип Обяз. Описание
instanceId path string да ID виртуальной машины

GET /operations/{operationId} — Статус операции

Хост operation.api.cloud.yandex.net.

Параметр Где Тип Обяз. Описание
operationId path string да ID операции

Пример запроса:

GET https://operation.api.cloud.yandex.net/operations/fcmq0j5033e516c56ctq

Нюансы

Другие сценарии


Если этого недостаточно — официальная документация: https://yandex.cloud/ru/docs/api-design-guide/ Вся интеграция одним документом: https://mcp-everything.ru/integrations/yandex-cloud.md