Trousse de développement logiciel (SDK)
Nous fournissons une trousse de développement logiciel (SDK) pour faciliter le développement des tâches (jobs) de Red Kite. Le SDK permet de publier des findings, de journaliser des messages et de valider les intrants. Il facilite donc la communication avec Red Kite.
Python
Le SDK Python, accessible dans les conteneurs Python sous le nom red_kite_job_sdk, fournit des fonctions et des classes utilitaires pour
vous aider à implémenter des tâches. Vous n'avez pas besoin de l'installer : il est déjà accessible dans chaque tâche Python.
Configuration locale
La configuration locale prise en charge est avec Visual Studio Code, mais n'importe quel environnement de développement devrait fonctionner.
Pour que l'IntelliSense puisse vous aider, vous devez créer un environnement virtuel. L'extension Python de VS Code peut vous aider : utilisez la commande « Python: Create environment ». Installez ensuite les dépendances :
pip install -r requirements.txt
Produire des findings
La plupart du temps, le but d'une tâche est de produire des findings. Pour informer Red Kite de ce qu'une tâche a trouvé, vous devez publier des findings dans le bon format.
Pour journaliser un finding, utilisez la fonction log_finding avec les bons paramètres. Pour en savoir plus, consultez la page
Produire des findings.
Produire des journaux
Une tâche peut aussi produire des journaux pour informer Red Kite du bon déroulement, ou non, de son exécution.
Les journaux permettent aux tâches de communiquer diverses informations au monde extérieur. Un rapport de progression, un journal d'erreur, une citation inspirante : tout fonctionne.
Pour publier un journal, utilisez le SDK de tâches de Red Kite.
Exemple :
from stalker_job_sdk import log_debug
log_debug("Hello world!")
Plusieurs niveaux de journalisation sont offerts :
| Niveau | Fonction |
|---|---|
| Débogage | log_debug |
| Information | log_info |
| Avertissement | log_warning |
| Erreur | log_error |
Mettre à jour le statut de la tâche
Avant de se terminer, une tâche doit mettre à jour son statut. Sinon, elle ne sera jamais marquée comme terminée. C'est pourquoi nous recommandons d'encapsuler l'exécution de la tâche dans un gestionnaire d'exceptions pour intercepter toute erreur et publier le statut de la tâche.
Pour mettre à jour le statut, utilisez simplement le SDK :
from stalker_job_sdk import log_status, JobStatus
# Si la tâche a réussi
log_status(JobStatus.SUCCESS)
# ou, si la tâche a échoué
log_status(JobStatus.FAILED)
Mettre à jour le statut devrait être la dernière chose que fait votre tâche avant de se terminer.