K2 Cloud API Client#

Важно

Для работы с K2 Cloud API Client требуется Python 3 ≥ 3.7.

Для работы с различными API К2 Облака можно использовать утилиты из пакета c2-client.

В состав пакета входят следующие утилиты:

  • c2-as — клиент к Auto Scaling API;

  • c2-ct — клиент к CloudTrail API;

  • c2-cw — клиент к CloudWatch API;

  • c2-dc — клиент к DirectConnect API;

  • c2-ec2 — клиент к EC2 API;

  • c2-eks — клиент к EKS API;

  • c2-elb — клиент к Elastic Load Balancing API;

  • c2-iam — клиент к IAM API;

  • c2-paas — клиент к PaaS API;

  • c2-route53 — клиент к Route53 API;

  • c2rc-convert — утилита конвертации настроек для использования в ОС Windows.

Для управления ресурсами в К2 Облаке с помощью API необходимы кастомизированные версии библиотек python-botocore и python-boto3.

Установка#

Все операционные системы#

Пакет c2-client использует кастомизированные версии boto3 и botocore из репозиториев C2Devel/boto3 и C2Devel/botocore. Чтобы изолировать используемые зависимости, установите виртуальное окружение.

  1. Клонируйте репозиторий.

    git clone https://github.com/C2Devel/c2-client.git && cd c2-client
    
  2. Установите виртуальное окружение (для систем на базе Linux).

    python3 -m venv .venv && source .venv/bin/activate
    
  3. Установите пакет в режиме редактирования вместе с зависимостями из файла requirements.txt.

    pip install -e . -r requirements.txt
    

Использование#

Необходимо получить настройки для доступа по API. Сделать это можно в консоли управления облаком. Нажмите на логин пользователя в правом верхнем углу и выберите Профиль Получить настройки доступа к API.

В переменной C2_PROJECT укажите идентификатор своего проекта.

Добавить полученные настройки в переменные окружения:

Для ОС Windows нужно конвертировать файл настроек и экспортировать переменные окружения:

C:\> c2rc-convert path\to\c2rc.sh path\to\c2rc.bat
C:\> call path\to\c2rc.bat

Для OC Linux нужно экспортировать переменные окружения:

source path/to/c2rc.sh

Теперь можно использовать утилиты согласно документации. Например:

c2-ec2 DescribeAvailabilityZones
c2-eks DescribeCluster name backend_production