Parámetros de la aplicación
Expone parámetros configurables a los usuarios sin necesidad de construir una interfaz web completa. Define un formulario usando env-template.yml e IronFlock lo renderiza automáticamente.
Cuándo usar parámetros
Usa parámetros para configuraciones simples que los usuarios necesiten ajustar por dispositivo o por grupo:
- Intervalos de grabación de sensores
- URLs de endpoints de datos
- Umbrales de alerta
- Activación/desactivación de funcionalidades
- Claves API y credenciales
Para configuraciones más complejas (entrenamiento de robots, configuración de cámaras con IA, configuración de hardware), construye una interfaz de usuario edge personalizada en su lugar.
Definir parámetros
Crea un archivo env-template.yml en el directorio .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ámetros
| Tipo | Se renderiza como | Ejemplo |
|---|---|---|
text | Campo de entrada de texto | URLs, nombres, claves |
numeric | Campo de entrada numérica | Intervalos, umbrales |
boolean | Interruptor de activación | Flags de funcionalidades |
select | Menú desplegable | Opciones predefinidas |
Cómo llegan los parámetros a tu aplicación
Los parámetros se inyectan como variables de entorno de Linux en tu contenedor:
Python
import os
interval = int(os.environ.get("RECORDING_INTERVAL", 5))
threshold = float(os.environ.get("ALERT_THRESHOLD", 80))Parámetros grandes
Los parámetros que exceden los 20 KB no se establecen como variables de entorno debido a limitaciones del sistema. En su lugar, todos los parámetros (incluidos los grandes) siempre están disponibles como archivos:
/data/env/PARAMETER_NAME.txtModo de desarrollo
El defaultValue especificado en env-template.yml se usa cuando se ejecuta la aplicación en modo de desarrollo. Esto proporciona una experiencia de desarrollo consistente sin requerir configuración manual de parámetros.
Parametrización masiva
Cuando los parámetros se configuran a nivel de grupo de dispositivos, se aplican a todos los dispositivos del grupo simultáneamente. Esto es ideal para:
- Establecer un bucket S3 común para todos los dispositivos de recopilación de datos
- Actualizar parámetros de modelos de IA a nivel de proyecto
- Cambiar configuraciones de sensores para toda una línea de producción
Los parámetros pueden configurarse incluso cuando los dispositivos están desconectados — se aplican cuando el dispositivo se reconecta.