Fly.io
Подключить
Подключите Fly.io из терминала. Передайте --help, чтобы увидеть флаги, которые принимает Fly.io, а также --no-browser для окружений без браузера.
polylane cloud connect --provider flyAPI-токен из дашборда Fly.io.
Fly.io подключается с помощью API-токена из вашего дашборда. Используйте самый ограниченный тип токена: Polylane нужен только доступ на чтение. Ваш токен шифруется перед сохранением, и агент никогда его не видит.
Настройка
- Откройте Fly.io Dashboard и перейдите в Tokens.
- Создайте новый токен read-only.
- Скопируйте токен и вставьте его в Polylane.
- Polylane проверяет токен и начинает синхронизацию.
Polylane обнаруживает ваши приложения, машины, тома, сертификаты и другие ресурсы Fly.io.
Типы токенов
| Тип | Область | Рекомендация |
|---|---|---|
| Read-only | Может только читать ресурсы | Используйте этот |
| Deploy | Может деплоить приложения | Не нужен |
| Personal | Полный доступ к аккаунту | Не рекомендуется |
Отключение
Отключите аккаунт в Polylane, затем отозовите токен в дашборде Fly.io в разделе Tokens.
Подключите Fly.io из CI-задания или любого другого окружения без браузера.
Для подключения Fly.io браузер не нужен: тот же эндпоинт, который вызывает консоль, помещается в CI-задание. Один аутентифицированный POST создаёт подключение и запускает первую синхронизацию.
Требования
- API-ключ Polylane с областями
cloud_accounts:writeиcloud_accounts:read. См. API-ключи и OAuth. - ID вашего рабочего пространства, который начинается с
ws_. Прочитайте его изGET /v1/workspacesтем же ключом. - API-токен Fly.io только для чтения, созданный в разделе Tokens дашборда Fly.io.
Создайте подключение
curl -X POST https://api.polylane.com/v1/cloud_accounts \
-H "x-api-key: $POLYLANE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider": "fly",
"workspaceId": "ws_0abc123",
"token": "<fly-api-token>"
}'
Токен соответствует одной организации Fly.io, поэтому один вызов подключает одну организацию.
- Обнаружение организации читает приложения, доступные токену, поэтому токен без доступа к приложениям завершается ошибкой
400.
Ответ перечисляет, что было подключено, с уже запущенной первой синхронизацией. Сокращён до двух полей, которые читает остальная часть процесса:
{
"success": true,
"result": {
"provider": "fly",
"accounts": [{ "id": "acc_34gky74ibc92h8t2efn8csrh", "status": "syncing" }],
"failures": []
}
}
Уже подключённый аккаунт попадает в failures, а не в accounts, поэтому повторный вызов никогда не дублирует подключение.
Дождитесь первой синхронизации
Опрашивайте каждый возвращённый аккаунт по его id, пока status не достигнет ready (new при регистрации, syncing пока ресурсы поступают):
until [ "$(curl -s "https://api.polylane.com/v1/cloud_accounts/$WORKSPACE_ID/$ACCOUNT_ID" \
-H "x-api-key: $POLYLANE_API_KEY" | jq -r '.result.status')" = "ready" ]; do
sleep 15
done
Задайте циклу предельное время, чтобы неудачное подключение проваливало задание, а не подвешивало его. Как только аккаунт в состоянии ready, его ресурсы находятся в топологии, и Polylane начал свою первую проверку.
Отключение через API
Удаление подключения останавливает все синхронизации и проверки и удаляет учётные данные, которые хранил Polylane. Вызову нужна область cloud_accounts:delete:
curl -X DELETE "https://api.polylane.com/v1/cloud_accounts/$WORKSPACE_ID/$ACCOUNT_ID" \
-H "x-api-key: $POLYLANE_API_KEY"
Затем отозовите учётные данные Fly.io на стороне провайдера, как описано ниже в разделе Отключение.
Отключить
Отключение останавливает все синхронизации и проверки и удаляет учётные данные, которые хранил Polylane. Всё, что Polylane настроил в Fly.io, также удаляется; ничего не остаётся.
polylane cloud disconnect <id>Инструменты
4Операции, которые агенты могут выполнять в тредах.
Поддерживаемые ресурсы
5Типы ресурсов, которые появляются в графе вашей инфраструктуры.