Crochet Web
Fonction | Les jobs Webhook sont utilisés pour recevoir des données de l'extérieur de SKOOR Engine, en utilisant son API REST. Le job attendra les valeurs d'entrée (valeurs numériques et chaînes de caractères) et stockera l'historique des valeurs entrantes. |
---|---|
Alarme | Code d'erreur, Valeurs, Valeurs de chaîne |
Pour ce type de travail, le collecteur doit être défini sur un collecteur pouvant être utilisé pour authentifier les appels REST. Si ce n'est pas encore fait, créez un utilisateur de type Collecteur dans /root/Users/Users.
Détails du webhook
Paramètres du Webhook
Paramètre | Description du paramètre |
---|---|
Délai d'attente après | Si ce paramètre est défini, le code d'erreur du travail sera défini sur 5 (Timeout Error) si aucune donnée n'est envoyée au travail pendant le délai spécifié. Le délai doit être réinitialisé par le code d'erreur envoyé avec la prochaine livraison de données |
Valeurs | Ajoutez une valeur pour chaque valeur numérique qui sera envoyée à l'API REST de SKOOR. Pour chaque valeur, un bouton de définition de l'unité permet de spécifier le nom de la valeur, l'unité, le diviseur, la précision et la description. |
Valeurs de chaîne | Ajoutez une valeur de chaîne pour chaque valeur de chaîne qui sera envoyée à l'API REST de SKOOR. Pour chaque valeur de chaîne, un bouton de définition d'unité permet de spécifier le nom, l'unité et la description de la valeur de chaîne. |
Valeurs du Webhook et limites d'alarme
Valeur / Limite d'alarme | Description de la valeur |
---|---|
Valeur 1-x | Valeur numérique définie par l'utilisateur |
Valeur de chaîne 1-x | Valeur de chaîne définie par l'utilisateur |
Code d'erreur | Code d'erreur générique de la tâche (voir la section Codes d'erreur de la tâche) |
Envoi de données à un job Webhook
N'importe quel client REST peut être utilisé pour envoyer des valeurs et des valeurs de chaîne au job Webhook. Dans cet exemple, l'outil de ligne de commande curl est utilisé. Le texte suivant présente un simple script shell bash qui alimentera le job avec 2 valeurs numériques et 1 valeur de chaîne à chaque fois qu'il est exécuté.
Un code d'erreur doit être envoyé avec les valeurs pour réinitialiser le code d'erreur 5 (Timeout error) si l'option Timeout after est définie dans la configuration du travail.
#!/bin/bash HOST="10.1.0.89" USER="webhook" PASSWORD="webhook" JOBID=830 SESSIONID=$(curl -s -k "https://${HOST}/skoor-webservice/session/login?username=${USER}&password=${PASSWORD}" | python -m json.tool | grep sessionId | cut -d"\"" -f4) curl -s -k -X POST -H "Content-Type: application/json" -d '{"returnValue1":24.42,"returnValue2":99,"stringValue1":"Skoor Test 3","errorCode":0}' "https://${HOST}/skoor-webservice/webcollector/jobs/$JOBID/values?sessionId=${SESSIONID}" curl -s -k "https://${HOST}/skoor-webservice/session/logout?sessionId=${SESSIONID}"
Le script définit d'abord quelques variables :
HOST: L'adresse IP ou le nom d'hôte du SKOOR Server où le job Webhook est configuré.
USER: Le nom de l'utilisateur du collecteur configuré sur le serveur SKOOR.
PASSWORD: Le mot de passe de l'utilisateur du collecteur
JOBID: L'ID de la tâche Webhook qui doit recevoir les valeurs.
Ensuite, une connexion est effectuée au SKOOR Webservice, recevant un ID de session. L'ID de session est une chaîne de caractères qui ressemble à ceci : d6c38ad55e80b4a3bed39d55699b824e.
La commande curl envoie les valeurs en utilisant les notations returnValueX et stringValueX dans une requête POST au SKOOR Webservice, avec un identifiant de session valide.
Le corps de la requête POST ressemble à ceci :
{ "returnValue1": 24.42, "returnValue2": 99, "stringValue1": "Skoor Test 3", "errorCode": 0 }
ou
{ "returnValue": [24.42, 99], "stringValue1": "Skoor Test 3", "errorCode": 0 }
Les données à alimenter peuvent provenir de n'importe quelle source, tant qu'elles peuvent être transmises au client REST.
Envoyez toujours la requête POST en utilisant l'en-tête approprié Content-Type : application/json.
La dernière étape du script consiste à se déconnecter de la session. Assurez-vous d'implémenter une déconnexion sinon l'exécution régulière de ce script laissera de nombreuses sessions ouvertes sur le serveur SKOOR Server.
Le script peut résider et être exécuté à partir de n'importe quel hôte qui peut atteindre le serveur SKOOR Engine via son port HTTPS TCP 443.
Pour plus d'informations sur l'API REST, veuillez trouver le guide du webservice disponible sur chaque installation de SKOOR Engine sur https://<SKOOR server>/skoor-webservice.
Avant d'exécuter le script, les 2 valeurs et 1 valeur de chaîne doivent être définies sur le job Webhook en utilisant les boutons Unit correspondants :
Une fois le script exécuté, la tâche Webhook doit avoir reçu les valeurs :
La valeur 1 met le job dans l'état Minor puisque les limites d'alarme suivantes ont été définies sur le job :