{"id":39811237,"url":"https://github.com/yandex-cloud-examples/yc-serverless-cloudops-automation","last_synced_at":"2026-01-18T12:44:27.768Z","repository":{"id":313175967,"uuid":"1042841007","full_name":"yandex-cloud-examples/yc-serverless-cloudops-automation","owner":"yandex-cloud-examples","description":"Библиотека CloudOps автоматизации для Yandex Cloud на базе Serverless.","archived":false,"fork":false,"pushed_at":"2025-09-04T09:42:04.000Z","size":26,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-04T11:34:13.585Z","etag":null,"topics":["cloud-functions","cloudops","serverless","yandex-cloud"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yandex-cloud-examples.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-22T17:01:24.000Z","updated_at":"2025-09-04T10:20:19.000Z","dependencies_parsed_at":"2025-09-04T11:34:16.661Z","dependency_job_id":"5c96075a-2ddf-464d-abc8-df993bc0ce43","html_url":"https://github.com/yandex-cloud-examples/yc-serverless-cloudops-automation","commit_stats":null,"previous_names":["yandex-cloud-examples/yc-serverless-cloudops-automation"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/yandex-cloud-examples/yc-serverless-cloudops-automation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yandex-cloud-examples%2Fyc-serverless-cloudops-automation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yandex-cloud-examples%2Fyc-serverless-cloudops-automation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yandex-cloud-examples%2Fyc-serverless-cloudops-automation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yandex-cloud-examples%2Fyc-serverless-cloudops-automation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yandex-cloud-examples","download_url":"https://codeload.github.com/yandex-cloud-examples/yc-serverless-cloudops-automation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yandex-cloud-examples%2Fyc-serverless-cloudops-automation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28536011,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T10:13:46.436Z","status":"ssl_error","status_checked_at":"2026-01-18T10:13:11.045Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloud-functions","cloudops","serverless","yandex-cloud"],"created_at":"2026-01-18T12:44:27.205Z","updated_at":"2026-01-18T12:44:27.747Z","avatar_url":"https://github.com/yandex-cloud-examples.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Yandex Cloud Serverless CloudOps Automation\n\nДанный репозиторий содержит Terraform модули и примеры с кодом для автоматизации основных задачи управления облачной инфраструктурой.\nКод может использоваться сам по себе, либо в составе Terraform модуля, который разворачивает необходимые, в зависимости от сценария ресурсы: [Cloud Function](https://yandex.cloud/ru/services/functions), [триггеры](https://yandex.cloud/ru/docs/functions/concepts/trigger/), [Yandex Database](https://yandex.cloud/ru/services/ydb).\n\n## Доступные автоматизации\n\n| Функция | Каталог | Описание | Сценарий |\n|----------|-----------|-------------|----------|\n| **Запуск ВМ по таймеру** | `01-start-vm-cron` | Автоматический запуск ВМ по расписанию | Запуск тестовых ВМ каждое утро в 08:00 |\n| **Остановка ВМ по таймеру** | `02-stop-vm-cron` | Автоматическая остановка ВМ по расписанию | Остановка тестовым ВМ каждый вечер в 20:00 |\n| **Масштабирование группы узлов** | `03-scale-fixed-ig-cron` | Масштабирование группы узлов по расписанию | Наращивание группы узлов по утрам, уменьшение группы узлов по вечерам |\n| **Очистка бакета** | `04-bucket-clean-up` | Автоматическая очистка бакетов по расписанию | Удаление старых бэкапов или временных файлов по заданному расписанию |\n| **Копирование объектов бакета** | `05-auto-copy-bucket-objects` | Автоматическое копирование новых объектов между бакетами Object Storage. [Практическое руководство](https://yandex.cloud/en/docs/functions/tutorials/bucket-to-bucket). | Постоянная репликация между бакетами для резервного копирования |\n| **Сохранение логов ALB в YDB** | `06-alb-logging-to-ydb` | Сохранение логов Application Load Balancer в YDB. [Практическое руководство для PostgreSQL](https://yandex.cloud/ru/docs/functions/tutorials/logging) | Долговременное хранение логов ALB, анализ логов |\n| **Сохранение логов S3 в YDB** | `07-bucket-logs-to-ydb` | Сохранение логов бакета Object Storage в YDB | Долговременное хранение логов доступа к бакету, анализ логов |\n| **Очистка снимков дисков** | `08-snapshots-clean-up` | Автоматическое удаление старых снимков дисков по расписанию | Удаление снимков дисков старше заданного количества дней для экономии места и средств |\n\n## Быстрый старт\n\n1. Склонируйте репозиторий:\n    ```bash\n    git clone https://github.com/yandex-cloud-examples/yc-serverless-cloudops-automation.git\n    cd yc-serverless-cloudops-automation\n    ```\n\n2. Выберите сценарий и перейдите в нужный каталог:\n\n    ```bash\n    cd 01-start-vm-cron\n    ```\n\n3. Скопируйте и заполните переменные:\n\n    ```bash\n    cp terraform.tfvars.example terraform.tfvars\n    # Edit terraform.tfvars with your values\n    ```\n\n 4. Разверните при помощи Terraform:\n\n    ```bash\n    terraform init\n    terraform plan\n    terraform apply\n    ```\n\n 5. Удалить можно следующей командой:\n\n    ```bash\n    terraform destroy\n    ```\n\n## Пререквизиты\n\n* Установленный и настроенный [Yandex Cloud CLI (yc)](https://yandex.cloud/ru/docs/cli/operations/install-cli) \n* Установленный [Terraform](https://yandex.cloud/ru/docs/tutorials/infrastructure-management/terraform-quickstart)\n* [Авторизованный ключ](https://yandex.cloud/ru/docs/iam/operations/authentication/manage-authorized-keys#console_1) [сервисного аккаунта](https://yandex.cloud/ru/docs/iam/operations/sa/create), с необходимыми ролями в каталоге (например, `admin`), для создания ресурсов в Yandex Cloud\n\n## Настройка\n\nКаждый сценарий содержит следующий набор файлов:\n\n* `variables.tf` - Входные переменные\n* `terraform.tfvars.example` - Пример файла конфигурации для переменных\n* `main.tf` - Описание создаваемых ресурсов\n* `src/` - Код, используемый в функции\n* `versions.tf` - Конфигурация провайдера\n\nВсе сценарии содержат следующие параметры конфигурации провайдера:\n\n* `provider_key_file` - путь до авторизованного ключа сервисного аккаунта, созданного ранее\n* `cloud_id` - Идентификатор [облака](https://yandex.cloud/ru/docs/resource-manager/operations/cloud/get-id)\n* `folder_id` - Идентификатор [каталога](https://yandex.cloud/ru/docs/resource-manager/operations/folder/get-id)\n* `zone` - Зона доступности (по умолчанию, `ru-central1-a`)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyandex-cloud-examples%2Fyc-serverless-cloudops-automation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyandex-cloud-examples%2Fyc-serverless-cloudops-automation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyandex-cloud-examples%2Fyc-serverless-cloudops-automation/lists"}