Modal
Conectar
Conecte Modal pelo terminal. Passe --help para ver as flags que Modal aceita, além de --no-browser para ambientes sem navegador.
polylane cloud connect --provider modalUm ID de token e um segredo de token das suas configurações do Modal.
O Modal se conecta com um token criado nas suas configurações do Modal. Um token do Modal resolve para exatamente um workspace, então um token conecta um workspace. Os tokens são criptografados antes de serem armazenados, e o agente nunca os vê.
- Abra o Modal e vá em Settings → Tokens.
- Clique em New token e copie tanto o token ID (começa com
ak-) quanto o token secret (começa comas-). - Cole os dois valores no Polylane.
- O Polylane valida o par e começa a sincronizar.
O Polylane descobre seus ambientes e, dentro de cada um, seus apps, funções incluindo web endpoints, sandboxes em execução, volumes, segredos, filas e dicts. Os segredos são mapeados apenas pelo nome: o Modal nunca expõe valores de segredos.
O Modal não tem opção de token somente leitura, então um token carrega as permissões da conta que o criou. O Polylane apenas lê do Modal durante a sincronização.
Solução de problemas
Erro "Invalid token"
- Tanto o token ID quanto o token secret são obrigatórios; nenhum dos dois autentica sozinho.
- Confira se o token não foi revogado nas configurações do Modal.
- Confirme que você copiou o valor inteiro, incluindo os prefixos
ak-eas-.
Recursos ausentes
- As funções são descobertas por meio do seu app, então um app que nunca foi implantado não tem funções para mostrar.
- Sandboxes finalizados são ignorados: apenas os em execução aparecem.
- Acione uma sincronização manual para atualizar antes da próxima passagem agendada.
Métricas e custo
- Os apps trazem dois gráficos: linhas de log de stderr por intervalo e gasto medido por hora. O Modal reporta apenas medidores instantâneos para todo o resto, então funções, sandboxes e volumes não têm gráficos próprios.
- As contagens de stderr são linhas de log, não falhas: um traceback de Python são várias linhas.
- O Modal guarda logs por 24 horas, então um gráfico nunca alcança um período anterior a esse.
- O gasto é atribuído por app, e o Modal materializa uma hora somente depois que ela termina, então a hora mais recente aparece baixa até se estabilizar.
Conecte Modal a partir de um job de CI ou de qualquer outro ambiente sem navegador.
Conectar o Modal não precisa de navegador: o mesmo endpoint que o console chama cabe em um job de CI. Um POST autenticado cria a conexão e inicia a primeira sincronização.
Pré-requisitos
- Uma chave de API do Polylane com os escopos
cloud_accounts:writeecloud_accounts:read. Veja Chaves de API e OAuth. - O ID do seu workspace, que começa com
ws_. Leia-o emGET /v1/workspacescom a mesma chave. - Um par de tokens do Modal de Settings → Tokens: o token ID (começa com
ak-) e o token secret (começa comas-).
Criar a conexão
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-..."
}'
O token resolve para exatamente um workspace do Modal, então uma chamada conecta um workspace.
A resposta lista o que foi conectado, com a primeira sincronização já em andamento. Reduzida aos dois campos que o restante do fluxo lê:
{
"success": true,
"result": {
"provider": "modal",
"accounts": [{ "id": "acc_34gky74ibc92h8t2efn8csrh", "status": "syncing" }],
"failures": []
}
}
Uma conta que já está conectada aparece em failures em vez de accounts, então repetir a chamada nunca duplica uma conexão.
Aguardar a primeira sincronização
Consulte cada conta retornada pelo seu id até que status chegue a ready (new no registro, syncing enquanto os recursos chegam):
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
Dê um prazo ao loop para que uma conexão com falha faça o job falhar em vez de travá-lo. Quando a conta estiver ready, seus recursos estão na topologia e o Polylane já iniciou sua primeira verificação.
Desconectar pela API
Excluir a conexão interrompe todas as sincronizações e verificações e apaga as credenciais que o Polylane guardava. A chamada precisa do escopo cloud_accounts:delete:
curl -X DELETE "https://api.polylane.com/v1/cloud_accounts/$WORKSPACE_ID/$ACCOUNT_ID" \
-H "x-api-key: $POLYLANE_API_KEY"
Depois revogue a credencial do Modal no lado do provedor, como descrito em Desconectar abaixo.
Desconectar
Desconectar interrompe todas as sincronizações e verificações e apaga as credenciais que o Polylane guardava. Tudo o que o Polylane configurou em Modal também é removido; nada fica para trás.
polylane cloud disconnect <id>Ferramentas
5Operações que os agentes podem executar em threads.
Recursos suportados
10Tipos de recurso que aparecem no seu grafo de infraestrutura.