Собирайте инвентарь Яндекс Облака и держите его в порядке по каталогам
Подключите Яндекс Облако к ИИ-агенту: виртуальные машины, serverless-функции, DNS-зоны, каталоги и биллинг. Агент соберёт инвентарь и разложит расходы.
Как агент работает с Яндекс Облако
У Яндекс Облака нет единого адреса API: каждый сервис живёт на своём хосте — compute для виртуальных машин, mks для Kubernetes, serverless-functions и serverless-containers, vpc с балансировщиками, dns и cdn, certificate-manager, storage и container-registry, mdb с ydb и trino, lockbox с kms, logging, monitoring, audit-trails, billing, resource-manager и organization-manager. Агент раскладывает запрос по нужным хостам сам и сводит ответы в один инвентарь в разрезе каталогов.
Начинает агент с resource-manager: сначала список облаков и каталогов, потому что почти во всех перечислениях ресурсов идентификатор каталога — обязательное поле самого API, а не удобство. Если Folder ID в подключении заполнен, этот шаг пропускается. Изменяющие вызовы облако возвращает не результатом, а операцией, и агент дожидается её завершения на operations-хосте, вместо того чтобы считать ответ 200 подтверждением того, что ресурс уже создан.
На чтении агент собирает инвентарь по каталогам, сверяет DNS-записи с сертификатами Certificate Manager и поднимает метрики мониторинга, а по расписанию присылает, что запустилось и остановилось за сутки. По деньгам API отдаёт платёжный аккаунт, бюджеты с порогами и справочник тарифов; построчная детализация потребления в API не выдаётся вовсе — её Облако кладёт выгрузкой в бакет, и агент честно скажет это, а не соберёт сумму по кусочкам. Меняет ресурсы он теми же методами API, что и консоль, но останавливается и спрашивает перед необратимым: удалением ресурса, остановкой машины, правкой DNS-зоны. Значения секретов Lockbox лежат на отдельном payload-хосте, и без прямой просьбы агент их не тянет.
Авторизованный ключ агент меняет на короткоживущий IAM-токен и обновляет его сам, поэтому долгий обход инвентаря не обрывается на середине. Границы видимого задаёт роль сервисного аккаунта: облако, куда роль не выдана, агент не увидит вовсе, а сервис, закрытый правами, отличит от пустого каталога. Частоту вызовов агент выдерживает сам, а когда каталог пуст или роли не хватает, называет причину прямо, вместо того чтобы показать пустой инвентарь.
Сценарии интеграции
Инвентарь ресурсов облака
Агент соберёт в один список виртуальные машины, кластеры Kubernetes и managed-БД, serverless-функции, бакеты и DNS-зоны по всем каталогам облака.
Бюджеты и лимиты расходов
Агент заведёт бюджет на платёжный аккаунт с порогами оповещения и покажет, какие каталоги и сервисы к этим порогам привязаны.
Сводка изменений за сутки
Агент по расписанию пришлёт, какие машины и кластеры запустились, остановились и появились за сутки — по журналу операций каждого ресурса.
Проверка DNS и сертификатов
Агент пройдёт по DNS-зонам и записям, сверит их с сертификатами Certificate Manager и назовёт то, у чего скоро истекает срок.
Почему падают функции
Агент поднимет логи и метрики мониторинга по serverless-функциям и контейнерам, найдёт всплеск ошибок и покажет, когда он начался и на чём.
Погасить простаивающие машины
Агент сверит метрики загрузки виртуальных машин с их размером и покажет кандидатов на остановку, а выключит только после вашего «да», дождавшись операции.
Примеры: Яндекс Облако
Счёт вырос на 34% — 214 тыс ₽ вместо 160 тыс в июне.
- Каталог prod-analytics дал +41 тыс ₽: две новые машины c 16 vCPU
- Managed PostgreSQL перевели на диск побольше, это ещё +9 тыс ₽
- Три машины в dev крутятся круглосуточно с апреля — гасить по ночам?
Ассистент может ошибаться — проверяйте его работу
В облаке 47 ресурсов, разложенных по 4 каталогам.
- Виртуальные машины — 19, из них 6 остановлены
- Serverless-функции — 14
- Бакеты и DNS-зоны — 9
- Managed-базы — 5 кластеров
Единого списка у Яндекс Облака нет: каждый сервис живёт на своём хосте, и почти во всех перечислениях идентификатор каталога — обязательное поле, так что каталоги я обошёл по одному и сшил ответы сам.
Ассистент может ошибаться — проверяйте его работу
Как подключить
Перед подключением
- Облако в Yandex Cloud с привязанным платёжным аккаунтом
- Права администратора или владельца этого облака
- Доступ к консоли управления console.yandex.cloud
- 1
Создайте сервисный аккаунт
Консоль управления → сервис «Identity and Access Management» → «Создать сервисный аккаунт». Имя — 3–63 символа: строчная латиница, цифры и дефисы.
- 2
Выдайте роль на облако, а не на каталог
Выберите облако вверху → вкладка «Права доступа» → «Настроить доступ» → аккаунт → «Добавить роль»: viewer для чтения, editor — чтобы менять ресурсы.
- 3
Скачайте авторизованный ключ в JSON
В карточке аккаунта: «Создать новый ключ» → «Создать авторизованный ключ» → «Скачать файл с ключами». Закрытая часть показывается один раз.
- 4
Скопируйте Folder ID для одного каталога
Идентификатор каталога виден на дашборде под именем каталога и в адресе console.yandex.cloud/folders/<id>; он начинается с b1.
Частые вопросы
JSON авторизованного ключа сервисного аккаунта: в консоли создайте аккаунт в «Identity and Access Management», выдайте роль на само облако и скачайте файл ключа — его содержимое вставьте в поле целиком. Folder ID заполнять не обязательно, но с ним агент не будет спрашивать каталог в каждом запросе.
Функции, контейнеры и API-шлюзы, виртуальные машины и диски, кластеры Kubernetes и managed-БД, сети с балансировщиками, DNS-зоны, CDN и сертификаты, бакеты и реестр образов, секреты Lockbox и ключи KMS, лог-группы, метрики мониторинга, аудит-трейлы, биллинг-аккаунт с бюджетами и организацию с её группами — в пределах роли сервисного аккаунта.
Нет — и это ограничение самого API Облака, а не коннектора: в биллинге доступны платёжный аккаунт, бюджеты с порогами оповещения и справочник тарифов, а построчного потребления там нет ни в каком виде. Детализацию Облако выгружает в бакет Object Storage по расписанию; агент назовёт это прямо и предложит завести бюджет с порогом вместо выдуманной сводки.
Да, если сервисному аккаунту выдана роль editor: агент вызывает те же методы API, что и консоль управления. С ролью viewer доступно только чтение.
Каталог придётся называть в каждом запросе: у списков ресурсов идентификатор каталога — обязательное поле самого API. Агент сумеет получить список каталогов облака и работать по нескольким, но заполненное поле избавляет от этого шага — идентификатор вида b1… подставляется сам.