Crochet Web

Fonction

Les tâches Webhook sont utilisées pour recevoir des données provenant de l'extérieur du SKOOR Engine, à l'aide de son API REST. La tâche 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 tâche, le collecteur doit être configuré de manière à pouvoir ê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

Délai d'expiration après

Si cette option est activée, le code d'erreur de la tâche sera défini sur 5 (erreur de délai d'attente) si aucune donnée n'est envoyée à la tâche pendant le délai spécifié. Le délai d'attente 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 SKOOR. Pour chaque valeur, un bouton Définition de l'unité permet de spécifier le nom, l'unité, le diviseur, la précision et la description de la valeur.

Valeurs de chaîne

Ajoutez une valeur de chaîne pour chaque valeur de chaîne qui sera envoyée à l'API REST SKOOR. Pour chaque valeur de chaîne, un bouton Définition de l'unité permet de spécifier le nom, l'unité et la description de la valeur de chaîne.

Valeurs Webhook et limites d'alarme

Valeur / Limite d'alarme

Description

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 tâche (voir la section Codes d'erreur de tâche)

Alimentation d'un travail Webhook en données

Tout client REST peut être utilisé pour envoyer des valeurs et des valeurs de chaîne au travail Webhook. Dans cet exemple, l'outil de ligne de commande curl est utilisé. Vous trouverez ci-dessous un script bash shell simple qui alimentera le travail avec 2 valeurs numériques et 1 valeur de chaîne à chaque fois qu'il sera exécuté. 

Un code d'erreur doit être envoyé avec les valeurs pour réinitialiser le code d'erreur 5 (erreur de délai d'attente) si le délai d'attente après est défini dans la configuration de la tâche.

#!/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 certaines variables :

  • HOST : l'adresse IP ou le nom d'hôte du SKOOR Server sur lequel la tâche Webhook est configurée.

  • USER : nom de l'utilisateur collecteur configuré sur le SKOOR Server

  • PASSWORD : le mot de passe de l'utilisateur collecteur

  • JOBID : l'ID de la tâche Webhook qui doit recevoir les valeurs

Une connexion est ensuite établie au SKOOR Webservice, qui renvoie un identifiant de session. L'identifiant de session est une chaîne de caractères qui ressemble à ceci : d6c38ad55e80b4a3bed39d55699b824e.

La commande curl envoie les valeurs à l'aide de la notation 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 à fournir peuvent provenir de n'importe quelle source, à condition qu'elles puissent être transmises au client REST.

Envoyez toujours la requête POST en utilisant l'en-tête approprié Content-Type: application/json.

Enfin, le script se déconnecte de la session. Veillez à implémenter une déconnexion, sinon l'exécution régulière de ce script laissera de nombreuses sessions ouvertes sur le SKOOR Server.

Le script peut résider et être exécuté à partir de n'importe quel hôte pouvant atteindre le serveur SKOOR Engine via son port HTTPS TCP 443.

Pour plus d'informations sur l'API REST, veuillez consulter le guide des services web disponible sur chaque installation de SKOOR Engine à l'adresse https://<SKOOR Server>/skoor-webservice.

Avant d'exécuter le script, les 2 valeurs et la chaîne de caractères doivent être définies dans la tâche Webhook à l'aide des boutons Unit correspondants :

     

Une fois le script exécuté, la tâche Webhook devrait avoir reçu les valeurs suivantes :

La valeur 1 place la tâche dans l'état Minor, car les limites d'alarme suivantes ont été définies pour la tâche :