Быстрый старт
Кратчайший надёжный путь от токена доступа до созданной виртуальной машины. Страница описывает порядок действий; точные схемы запросов и ответов смотрите в справочнике API.
Что нужно заранее
- Действующий токен API, выпущенный в аккаунте ZennoHosting.
Клиент, умеющий отправлять запросы по HTTPS с заголовком
Authorization.- Возможность прочитать актуальные каталоги образов и тарифов до сборки запроса на создание машины.
Проверьте подключение
Начните с безопасного запроса на чтение. Он подтвердит, что базовый адрес и заголовок авторизации указаны верно, — до того, как вы начнёте создавать проект и машину.
curl --request GET \
--url 'https://api.zennohosting.com/v1/projects' \
--header 'Authorization: Bearer <token>' \
--header 'Accept: application/json'
- 1
Получите токен доступа
Выпустите токен в аккаунте ZennoHosting и положите его в хранилище секретов, а не в код.
- 2
Проверьте доступ запросом на чтение
Вызовите
GET /projects: так вы убедитесь, что API принимает ваш базовый адрес и токен, прежде чем готовить данные для создания машины. - 3
Посмотрите квоты
GET /limitsпокажет, сколько проектов и машин вам ещё доступно и сколько осталось ядер, памяти и диска. Это дешевле, чем получить отказ на создании. - 4
Соберите входные данные
Прочитайте конфигурации, образы и тарифы. Если машине нужен новый публичный адрес, выберите отдельный тариф для него — тариф машины для этого не подходит.
- 5
Создайте проект
Проект владеет машинами, SSH-ключами, сетями и публичными адресами. Создайте его первым и переиспользуйте идентификатор в остальных вызовах.
- 6
Выберите способ доступа
Решите, передавать ли публичные ключи прямо в запросе через
sshPublicKeysили ссылаться на зарегистрированные в проекте черезsshKeyIds. Тогда же решите, нужны ли плагины. - 7
Создайте машину
Отправьте запрос с образом, тарифом, именем и параметрами доступа. В том же запросе можно описать публичный адрес, подключение к приватным сетям и плагины.
- 8
Сразу сохраните пароль, если он вернулся
Пароль в ответе показывается один раз. Получить его позже через API нельзя, поэтому сохраните его немедленно.
- 9
Дождитесь готовности машины
Создание асинхронно. Ответ
202 AcceptedсcommandIdозначает только приём работы. Дальше опрашивайте машину и смотрите наstatus:creating— ещё создаётся,active— готова. Питание показываетbootStatus.
Что должно получиться
В конце у вас есть рабочий токен, идентификатор проекта, идентификатор машины, зафиксированный способ доступа и подтверждённое состояние машины — а не просто принятая команда.
Частые ошибки
Берите идентификаторы из живых ответов API, а не из примеров на этой странице. Почти все проблемы при первом создании
машины сводятся к устаревшим projectId, imageId или tariffId — либо к
предположению, что машина готова сразу после 202 Accepted.
Связанные эндпоинты
/limitsПосмотреть квоты и остаток по ресурсам.
/configurationsПолучить доступные конфигурации машин.
/imagesПолучить идентификаторы образов.
/tariffsПолучить идентификаторы тарифов для машин.
/projectsСоздать проект, который будет владеть машиной.
/projects/{projectId}/vmsСоздать виртуальную машину.
/projects/{projectId}/vms/{vmId}Прочитать машину и проверить её status.