Collega
Collega Modal dal terminale. Passa --help per vedere i flag che Modal accetta, più --no-browser per gli ambienti headless.
polylane cloud connect --provider modalUn token ID e un token secret dalle impostazioni di Modal.
Modal si collega con un token creato nelle impostazioni di Modal. Un token Modal corrisponde a esattamente un workspace, quindi un token collega un workspace. I token vengono cifrati prima di essere archiviati e l'agente non li vede mai.
- Apri Modal e vai su Settings → Tokens.
- Fai clic su New token e copia sia il token ID (inizia con
ak-) sia il token secret (inizia conas-). - Incolla entrambi i valori in Polylane.
- Polylane convalida la coppia e avvia la sincronizzazione.
Polylane scopre i tuoi environment e, in ciascuno, le app, le funzioni inclusi gli endpoint web, i sandbox in esecuzione, i volumi, i secret, le code e i dict. I secret vengono mappati solo per nome: Modal non espone mai i valori dei secret.
Modal non offre token in sola lettura, quindi un token porta con sé i permessi dell'account che lo ha creato. Polylane legge soltanto da Modal durante la sincronizzazione.
Risoluzione dei problemi
Errore "Invalid token"
- Servono sia il token ID sia il token secret; uno solo dei due non basta per autenticarsi.
- Verifica che il token non sia stato revocato nelle impostazioni di Modal.
- Controlla di aver copiato il valore completo, compresi i prefissi
ak-eas-.
Risorse mancanti
- Le funzioni vengono scoperte tramite la loro app, quindi un'app mai deployata non ha funzioni da mostrare.
- I sandbox terminati vengono saltati: compaiono solo quelli in esecuzione.
- Avvia una sincronizzazione manuale per aggiornare prima del prossimo passaggio pianificato.
Metriche e costi
- Le app hanno due grafici: righe di log su stderr per intervallo e spesa misurata per ora. Per tutto il resto Modal riporta solo valori istantanei, quindi funzioni, sandbox e volumi non hanno grafici propri.
- I conteggi di stderr sono righe di log, non errori: un singolo traceback Python occupa diverse righe.
- Modal conserva i log per 24 ore, quindi un grafico non va mai più indietro di così.
- La spesa è attribuita per app e Modal consolida un'ora solo dopo che è terminata, quindi l'ora più recente appare bassa finché non si assesta.
Collega Modal da un job CI o da qualsiasi altro ambiente senza browser.
Collegare Modal non richiede un browser: lo stesso endpoint che chiama la console sta in un job CI. Una sola POST autenticata crea il collegamento e avvia la prima sincronizzazione.
Prerequisiti
- Una chiave API Polylane con gli scope
cloud_accounts:writeecloud_accounts:read. Vedi Chiavi API e OAuth. - L'ID del tuo workspace, che inizia con
ws_. Leggilo daGET /v1/workspacescon la stessa chiave. - Una coppia di token Modal da Settings → Tokens: il token ID (inizia con
ak-) e il token secret (inizia conas-).
Crea il collegamento
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-..."
}'
Il token corrisponde a esattamente un workspace Modal, quindi una sola chiamata collega un workspace.
La risposta elenca ciò che è stato collegato, con la prima sincronizzazione già in corso. Ridotta ai due campi che il resto del flusso legge:
{
"success": true,
"result": {
"provider": "modal",
"accounts": [{ "id": "acc_34gky74ibc92h8t2efn8csrh", "status": "syncing" }],
"failures": []
}
}
Un account già collegato finisce in failures invece che in accounts, quindi ripetere la chiamata non duplica mai un collegamento.
Attendi la prima sincronizzazione
Interroga ogni account restituito tramite il suo id finché status non raggiunge ready (new alla registrazione, syncing mentre le risorse arrivano):
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
Dai al ciclo una scadenza, così un collegamento fallito fa fallire il job invece di bloccarlo. Una volta che l'account è ready, le sue risorse sono nella topologia e Polylane ha avviato il suo primo controllo.
Scollega dall'API
Eliminare il collegamento interrompe ogni sincronizzazione e ogni controllo ed elimina le credenziali che Polylane conservava. La chiamata richiede lo 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"
Poi revoca la credenziale Modal sul lato del provider, come descritto sotto Scollega qui sotto.
Scollega
Scollegare interrompe ogni sincronizzazione e ogni controllo ed elimina le credenziali che Polylane conservava. Anche tutto ciò che Polylane aveva configurato in Modal viene rimosso; non resta nulla.
polylane cloud disconnect <id>Strumenti
5Operazioni che gli agenti possono eseguire nei thread.
Risorse supportate
10Tipi di risorsa che compaiono nel grafo della tua infrastruttura.