Parâmetros do App
Exponha parâmetros configuráveis aos usuários sem construir uma interface web completa. Defina um formulário usando env-template.yml e o IronFlock o renderiza automaticamente.
Quando Usar Parâmetros
Use parâmetros para configurações simples que os usuários precisam ajustar por dispositivo ou por grupo:
- Intervalos de gravação de sensores
- URLs de endpoints de dados
- Limites de alerta
- Ativação e desativação de recursos
- Chaves de API e credenciais
Para configurações mais complexas (treinamento de robôs, configuração de IA de câmeras, configuração de hardware), construa em vez disso uma Interface de Usuário de Borda personalizada.
Definindo Parâmetros
Crie um arquivo env-template.yml no diretório .ironflock/:
RECORDING_INTERVAL:
label: "Recording Interval (seconds)"
defaultValue: 5
type: numeric
optional: true
ALERT_THRESHOLD:
label: "Temperature Alert Threshold (°C)"
defaultValue: 80
type: numeric
optional: true
API_ENDPOINT:
label: "Data API Endpoint"
defaultValue: "https://api.example.com/data"
type: text
optional: true
ENABLE_DEMO:
label: "Enable Demo Data"
defaultValue: true
type: boolean
optional: true
DATA_FORMAT:
label: "Output Format"
defaultValue: "json"
type: select
options:
- json
- csv
- xml
optional: true
SECRET_KEY:
label: "API Secret Key"
defaultValue: ""
type: text
secret: true
optional: trueTipos de Parâmetro
| Tipo | Renderizado Como | Exemplo |
|---|---|---|
text | Campo de entrada de texto | URLs, nomes, chaves |
numeric | Campo numérico | Intervalos, limites |
boolean | Chave de alternância | Flags de recursos |
select | Menu suspenso | Opções predefinidas |
Como os Parâmetros Chegam ao Seu App
Os parâmetros são injetados como variáveis de ambiente Linux no seu contêiner:
Python
import os
interval = int(os.environ.get("RECORDING_INTERVAL", 5))
threshold = float(os.environ.get("ALERT_THRESHOLD", 80))Parâmetros Grandes
Parâmetros que excedem 20 KB não são definidos como variáveis de ambiente devido a limitações do sistema. Em vez disso, todos os parâmetros (incluindo os grandes) estão sempre disponíveis como arquivos:
/data/env/PARAMETER_NAME.txtO agente de dispositivo torna /data/env legível apenas pelo root. Os contêineres rodam como root, a menos que a sua imagem escolha outro usuário; um contêiner que roda como outro usuário não consegue ler esses arquivos, então vê apenas os parâmetros definidos como variáveis de ambiente quando iniciou — e um parâmetro acima de 20 KB não chega a ele de forma alguma. Rode o contêiner como root se o seu app precisar de parâmetros acima de 20 KB.
Modo de Desenvolvimento
O defaultValue especificado em env-template.yml é usado ao executar o app em modo de desenvolvimento. Isso proporciona uma experiência de desenvolvimento consistente sem exigir configuração manual de parâmetros.
Parametrização em Massa
Quando os parâmetros são definidos no nível do grupo de dispositivos, eles se aplicam a todos os dispositivos do grupo simultaneamente. Isso é ideal para:
- Definir um bucket S3 comum em todos os dispositivos de coleta de dados
- Atualizar parâmetros de modelos de IA em todo o projeto
- Alterar configurações de sensores de uma linha de produção inteira
Os parâmetros podem ser definidos mesmo quando os dispositivos estão offline — eles são aplicados quando o dispositivo se reconecta.