Files
regcloud-api/examples/scale_by_load.py
T
viktor a106ba5b6b Клиент обобщён, снята привязка к видеокартам
GPU это лишь один из тарифов, а клиент общего назначения. Примеры переписаны
на обычные серверы, добавлен пример с масштабированием под нагрузку.

Claude-Session: https://claude.ai/code/session_01Loz5stgQZH6ofBdMqTxiJu
2026-08-23 18:18:27 +09:00

38 строки
1.1 KiB
Python

"""Поднимать серверы под нагрузку и гасить, когда она спала.
Тарификация идёт от часа, поэтому есть смысл держать машину не меньше часа
и не поднимать её ради пары минут работы.
"""
import time
from regcloud_api import RegCloud
api = RegCloud()
POOL_NAME = "worker-"
SIZE = "c4-m8-d120-hp"
REGION = "openstack-msk1"
def workers():
return [s for s in api.list() if s["name"].startswith(POOL_NAME)]
def scale_to(count: int):
now = workers()
while len(now) < count:
n = len(now) + 1
srv = api.create(size=SIZE, image="ubuntu-24-04-amd64",
name=f"{POOL_NAME}{n:02d}", region=REGION)
print("поднял", srv["id"])
now = workers()
while len(now) > count:
victim = now[-1]
api.destroy(victim["id"])
print("погасил", victim["id"])
now = workers()
if __name__ == "__main__":
scale_to(2)
time.sleep(5)
print("сейчас работает:", len(workers()))