Skip to Content
Desenvolvimento de Apps IoTParâmetros do App

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: true

Tipos de Parâmetro

TipoRenderizado ComoExemplo
textCampo de entrada de textoURLs, nomes, chaves
numericCampo numéricoIntervalos, limites
booleanChave de alternânciaFlags de recursos
selectMenu suspensoOpçõ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:

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.txt

O 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.

Last updated on