Modal
Połącz
Połącz Modal z terminala. Podaj --help, aby zobaczyć flagi, które Modal przyjmuje, plus --no-browser dla środowisk headless.
polylane cloud connect --provider modalIdentyfikator tokenu i sekret tokenu z ustawień Modal.
Modal łączy się tokenem utworzonym w ustawieniach Modal. Token Modal odpowiada dokładnie jednemu obszarowi roboczemu, więc jeden token łączy jeden obszar roboczy. Tokeny są szyfrowane przed zapisaniem, a agent nigdy ich nie widzi.
- Otwórz Modal, przejdź do Settings → Tokens.
- Kliknij New token i skopiuj zarówno identyfikator tokenu (zaczyna się od
ak-), jak i sekret tokenu (zaczyna się odas-). - Wklej obie wartości do Polylane.
- Polylane weryfikuje parę i zaczyna synchronizację.
Polylane odkrywa twoje środowiska, a w każdym z nich aplikacje, funkcje wraz z punktami końcowymi web, działające sandboxy, wolumeny, sekrety, kolejki i dicty. Sekrety są mapowane tylko po nazwie: Modal nigdy nie ujawnia wartości sekretów.
Modal nie ma opcji tokenu tylko do odczytu, więc token niesie uprawnienia konta, które go utworzyło. Polylane podczas synchronizacji tylko czyta z Modal.
Rozwiązywanie problemów
Błąd "Invalid token"
- Wymagane są zarówno identyfikator tokenu, jak i sekret tokenu; żaden z nich sam nie uwierzytelnia.
- Sprawdź, czy token nie został odwołany w ustawieniach Modal.
- Potwierdź, że skopiowano całą wartość, łącznie z prefiksami
ak-ias-.
Brakujące zasoby
- Funkcje są odkrywane przez swoją aplikację, więc aplikacja, która nigdy nie została wdrożona, nie ma funkcji do pokazania.
- Zakończone sandboxy są pomijane: pojawiają się tylko działające.
- Wywołaj ręczną synchronizację, aby odświeżyć wcześniej niż przy następnym zaplanowanym przebiegu.
Metryki i koszt
- Aplikacje mają dwa wykresy: linie logów stderr na przedział i mierzone wydatki na godzinę. Dla wszystkiego innego Modal raportuje tylko chwilowe wskaźniki, więc funkcje, sandboxy i wolumeny nie mają własnych wykresów.
- Liczniki stderr to linie logów, a nie awarie: jeden traceback Pythona to kilka linii.
- Modal przechowuje logi przez 24 godziny, więc wykres nigdy nie sięga dalej wstecz.
- Wydatki są przypisywane per aplikacja, a Modal materializuje godzinę dopiero po jej zakończeniu, więc najnowsza godzina pokazuje zaniżoną wartość, dopóki się nie ustabilizuje.
Połącz Modal z zadania CI lub dowolnego innego środowiska bez przeglądarki.
Połączenie Modal nie potrzebuje przeglądarki: ten sam punkt końcowy, który wywołuje konsola, mieści się w zadaniu CI. Jeden uwierzytelniony POST tworzy połączenie i uruchamia pierwszą synchronizację.
Wymagania wstępne
- Klucz API Polylane z zakresami
cloud_accounts:writeicloud_accounts:read. Zobacz Klucze API i OAuth. - Identyfikator twojego obszaru roboczego, zaczynający się od
ws_. Odczytaj go zGET /v1/workspacestym samym kluczem. - Para tokenów Modal z Settings → Tokens: identyfikator tokenu (zaczyna się od
ak-) i sekret tokenu (zaczyna się odas-).
Utwórz połączenie
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-..."
}'
Token odpowiada dokładnie jednemu obszarowi roboczemu Modal, więc jedno wywołanie łączy jeden obszar roboczy.
Odpowiedź wymienia, co zostało połączone, z już działającą pierwszą synchronizacją. Przycięta do dwóch pól, które czyta reszta przepływu:
{
"success": true,
"result": {
"provider": "modal",
"accounts": [{ "id": "acc_34gky74ibc92h8t2efn8csrh", "status": "syncing" }],
"failures": []
}
}
Konto, które jest już połączone, trafia do failures zamiast do accounts, więc powtórzenie wywołania nigdy nie duplikuje połączenia.
Poczekaj na pierwszą synchronizację
Odpytuj każde zwrócone konto po jego id, aż status osiągnie ready (new po rejestracji, syncing w trakcie napływu zasobów):
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
Daj pętli termin, aby nieudane połączenie kończyło zadanie błędem zamiast je zawieszać. Gdy konto jest ready, jego zasoby są w topologii, a Polylane uruchomiło pierwszą kontrolę.
Odłącz przez API
Usunięcie połączenia zatrzymuje każdą synchronizację i kontrolę oraz usuwa poświadczenia, które Polylane przechowywało. Wywołanie wymaga zakresu cloud_accounts:delete:
curl -X DELETE "https://api.polylane.com/v1/cloud_accounts/$WORKSPACE_ID/$ACCOUNT_ID" \
-H "x-api-key: $POLYLANE_API_KEY"
Potem odwołaj poświadczenie Modal po stronie dostawcy, jak opisano poniżej w sekcji Disconnect.
Odłącz
Odłączenie zatrzymuje każdą synchronizację i kontrolę oraz usuwa poświadczenia, które Polylane przechowywało. Wszystko, co Polylane skonfigurowało w Modal, również jest usuwane; nic nie zostaje.
polylane cloud disconnect <id>Narzędzia
5Operacje, które agenci mogą wykonywać w wątkach.
Obsługiwane zasoby
10Typy zasobów, które pojawiają się w grafie twojej infrastruktury.