Verbinden
Verbinde Modal aus dem Terminal. Mit --help siehst du die Flags, die Modal akzeptiert, dazu --no-browser für Umgebungen ohne Browser.
polylane cloud connect --provider modalEine Token-ID und ein Token-Secret aus deinen Modal-Einstellungen.
Modal wird mit einem Token verbunden, den du in deinen Modal-Einstellungen erstellst. Ein Modal-Token gehört zu genau einem Workspace, ein Token verbindet also einen Workspace. Tokens werden vor dem Speichern verschlüsselt, und der Agent sieht sie nie.
- Öffne Modal und gehe zu Settings → Tokens.
- Klicke auf New token und kopiere sowohl die Token-ID (beginnt mit
ak-) als auch das Token-Secret (beginnt mitas-). - Füge beide Werte in Polylane ein.
- Polylane prüft das Paar und startet den Sync.
Polylane entdeckt deine Environments und darin jeweils deine Apps, Functions inklusive Web-Endpunkten, laufende Sandboxes, Volumes, Secrets, Queues und Dicts. Secrets werden nur über ihren Namen abgebildet: Modal gibt Secret-Werte nie preis.
Modal bietet keine schreibgeschützte Token-Option, ein Token trägt deshalb die Berechtigungen des Kontos, das ihn erstellt hat. Polylane liest während des Syncs nur aus Modal.
Fehlerbehebung
Fehler "Invalid token"
- Token-ID und Token-Secret sind beide erforderlich; eines allein kann sich nicht authentifizieren.
- Prüfe, ob der Token in den Modal-Einstellungen widerrufen wurde.
- Vergewissere dich, dass du den ganzen Wert kopiert hast, inklusive der Präfixe
ak-undas-.
Fehlende Ressourcen
- Functions werden über ihre App entdeckt, eine nie deployte App hat also keine Functions, die angezeigt werden könnten.
- Beendete Sandboxes werden übersprungen: Nur laufende erscheinen.
- Starte einen manuellen Sync, um früher als beim nächsten geplanten Durchlauf zu aktualisieren.
Metriken und Kosten
- Apps tragen zwei Diagramme: stderr-Logzeilen pro Bucket und gemessene Ausgaben pro Stunde. Für alles andere meldet Modal nur momentane Messwerte, Functions, Sandboxes und Volumes haben deshalb keine eigenen Diagramme.
- Die stderr-Zählung zählt Logzeilen, keine Fehler: Ein Python-Traceback sind mehrere Zeilen.
- Modal behält Logs 24 Stunden, ein Diagramm reicht deshalb nie weiter zurück.
- Ausgaben werden pro App zugeordnet, und Modal materialisiert eine Stunde erst, wenn sie vorbei ist, die jüngste Stunde erscheint deshalb zu niedrig, bis sie sich gesetzt hat.
Verbinde Modal aus einem CI-Job oder einer anderen Umgebung ohne Browser.
Für die Verbindung mit Modal braucht es keinen Browser: Derselbe Endpunkt, den die Konsole aufruft, passt in einen CI-Job. Ein authentifizierter POST erstellt die Verbindung und startet den ersten Sync.
Voraussetzungen
- Ein Polylane-API-Schlüssel mit den Scopes
cloud_accounts:writeundcloud_accounts:read. Siehe API-Schlüssel und OAuth. - Deine Workspace-ID, die mit
ws_beginnt. Lies sie mit demselben Schlüssel ausGET /v1/workspaces. - Ein Modal-Token-Paar aus Settings → Tokens: die Token-ID (beginnt mit
ak-) und das Token-Secret (beginnt mitas-).
Verbindung erstellen
curl -X POST https://api.polylane.com/v1/cloud_accounts \
-H "x-api-key: $POLYLANE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider": "modal",
"workspaceId": "ws_0abc123",
"tokenId": "ak-...",
"tokenSecret": "as-..."
}'
Der Token gehört zu genau einem Modal-Workspace, ein Aufruf verbindet also einen Workspace.
Die Antwort listet auf, was verbunden wurde, der erste Sync läuft bereits. Gekürzt auf die zwei Felder, die der Rest des Ablaufs liest:
{
"success": true,
"result": {
"provider": "modal",
"accounts": [{ "id": "acc_34gky74ibc92h8t2efn8csrh", "status": "syncing" }],
"failures": []
}
}
Ein bereits verbundenes Konto landet in failures statt in accounts, ein wiederholter Aufruf dupliziert also nie eine Verbindung.
Auf den ersten Sync warten
Frage jedes zurückgegebene Konto über seine id ab, bis status ready erreicht (new bei der Registrierung, syncing, während Ressourcen einlaufen):
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
Gib der Schleife eine Frist, damit ein fehlgeschlagenes Verbinden den Job fehlschlagen lässt, statt ihn hängen zu lassen. Sobald das Konto ready ist, sind seine Ressourcen in der Topologie, und Polylane hat seinen ersten Check gestartet.
Über die API trennen
Das Löschen der Verbindung stoppt jeden Sync und Check und löscht die Zugangsdaten, die Polylane gespeichert hatte. Der Aufruf braucht den Scope cloud_accounts:delete:
curl -X DELETE "https://api.polylane.com/v1/cloud_accounts/$WORKSPACE_ID/$ACCOUNT_ID" \
-H "x-api-key: $POLYLANE_API_KEY"
Widerrufe dann die Modal-Zugangsdaten auf Anbieterseite, wie unten unter Trennen beschrieben.
Trennen
Beim Trennen stoppen alle Syncs und Checks, und die Zugangsdaten, die Polylane gespeichert hatte, werden gelöscht. Alles, was Polylane in Modal eingerichtet hat, wird ebenfalls entfernt; nichts bleibt zurück.
polylane cloud disconnect <id>Tools
5Operationen, die Agents in Threads ausführen können.
Unterstützte Ressourcen
10Ressourcentypen, die in deinem Infrastrukturgraphen erscheinen.