Générer un flux d'événement de moniteur d'interrogation
Les événements de moniteur d'interrogation sont conçus pour s'exécuter automatiquement à intervalles réguliers, en interrogeant une API pour les enregistrements qui ont changé depuis la dernière exécution. Voici comment ils fonctionnent :
-
Initialisation et exécution : Lorsqu'il est activé, l'événement de moniteur d'interrogation appelle l'API pour récupérer une collection d'enregistrements et définit un curseur (typiquement un horodatage) pour marquer le point actuel dans le temps. Lors des exécutions suivantes, le curseur est utilisé pour modifier l'appel API afin qu'il ne retourne que les enregistrements modifiés après la dernière exécution.
-
Fonctionnalité du curseur : Le curseur est une métadonnée persistante qui aide à filtrer les données entre les itérations. Par exemple, si chaque enregistrement inclut un horodatage
createdAt, le curseur garantit que seuls les enregistrements ayant un horodatage postérieur à la dernière valeur de curseur enregistrée sont traités. Après chaque itération, le curseur se met à jour à la nouvelle heure d'exécution. -
Cas d'utilisation : Les événements de moniteur d'interrogation sont utiles pour les API de services distants qui ne prennent pas en charge les webhooks en temps réel. Ils permettent des vérifications régulières d'événements comme la création d'utilisateur en interrogeant les enregistrements dans une plage temporelle spécifiée (à l'aide de paramètres comme
startAtetendAt). -
Applications pratiques : Dans Workflows Okta, ces événements vous permettent de créer des cartes d'événement pour les connecteurs qui se déclenchent sur de nouveaux événements, comme la création, la mise à jour ou la suppression d'enregistrements.
Remarque :La taille d'un curseur est limitée à 10 ko. L'utilisation de curseurs pour stocker de grandes quantités de données peut provoquer des erreurs qui obligent vos utilisateurs à réactiver leur flux et à réinitialiser le curseur.
En somme, les événements de moniteur d'interrogation fournissent une approche systématique pour gérer les enregistrements nouveaux et modifiés en utilisant des appels API planifiés et un curseur persistant pour garantir que seuls les changements récents sont traités.
Avant de commencer
-
Vous devez être un super administrateur avec accès à Workflows Okta.
-
Si vous n'avez pas encore créé de connecteur, suivez les étapes ci-dessous pour en créer un :
-
Depuis Okta Workflows Console, ouvrez le lien correspondant à la console Connector Builder.
-
Dans Connector Builder, cliquez sur l'icône
pour créer un connecteur. Donnez à votre nouveau connecteur un nom unique et une description utile.
-
-
Assurez-vous que le connecteur dispose des éléments de base et d'authentification fournis par les tâches de la section Débuter rapidement avec les éléments de base.
Procédure
-
Dans l'onglet Flux de votre nouveau connecteur, créez un flux en cliquant sur + Nouveau flux).
-
Cliquez sur Ajouter un événement. Dans le choix des événements, sélectionnez Moniteur d'interrogation.
Les cartes de fonction de contrôle de flux Curseur et Sorties de retour sont automatiquement ajoutées à votre flux. Reportez-vous à l'état initial dans l'exemple.
-
Cliquez sur Ajouter des options pour déclarer les options de la carte Moniteur d'interrogation.
-
Cliquez sur Ajouter des sorties sur la carte Sorties de retour pour configurer les groupes et les champs de sortie renvoyés par le flux d'événement de moniteur d'interrogation.
-
Les événements de moniteur d'interrogation ont toujours un mode exécution actif, de sorte que le bouton à bascule Activer le mode d'exécution est automatiquement activé et ne peut pas être modifié. Consultez Activer le mode exécution pour les moniteurs d'interrogation.
-
Dans la boîte de dialogue Sorties, vous pouvez spécifier les valeurs de sortie que le moniteur d'interrogation doit renvoyer. Cliquez sur Ajouter un groupe pour créer un groupe de sorties et sur Ajouter un champ pour ajouter chaque champ du groupe. Si le résultat attendu est un objet, les groupes forment les paires clé-valeur de premier niveau dans l'objet et les champs forment les paires clé-valeur de deuxième niveau.
-
Cliquez sur Appliquer pour enregistrer les modifications apportées à votre carte Sorties de retour.
-
-
Générez votre flux de moniteur d'interrogation :
-
Ajoutez une carte de fonction Date et heure Maintenant pour générer une nouvelle valeur pour votre champ
endAt. Cela suppose que vous utilisez les horodatages en tant que filtres pour votre requête API. -
Créez un filtre de requête pour votre appel HTTP avec les filtres de requête
startAtetendAt. Faites glisser la sortie Curseur de la carte d'événement Moniteur d'interrogation en tant qu'entrée pour la datestartAt.Si votre curseur est un objet plutôt qu'un horodatage, utilisez une carte Objet Obtenir pour récupérer l'horodatage à partir de votre objet curseur.
-
Ajoutez une carte Flux d'appel pour exécuter le flux httpHelper existant de votre connexion et appelez l'API du service distant.
-
Faites glisser votre filtre de requête construit en tant qu'entrée pour le champ de requête de la carte Flux d'appel.
-
Utilisez la connexion définie dans le champ Auth de la carte d'événement Moniteur d'interrogation.
-
-
Utilisez l'entrée des propriétés de la carte Curseur pour enregistrer la nouvelle valeur Maintenant en tant que curseur pour la prochaine exécution planifiée. Cela écrase la valeur Curseur d'origine.
-
Si votre curseur est un objet plutôt qu'un horodatage, utilisez une carte Objet Construction pour mettre à jour l'horodatage à l'intérieur de votre objet curseur.
-
Après le déploiement du connecteur, chaque flux externe actif qui utilise cette carte d'événement Moniteur d'interrogation conserve une valeur de curseur unique.
-
-
Formatez la réponse de charge utile de votre appel d'API dans une liste d'objets. Chaque objet contient les clés de premier niveau pour vos groupes, ainsi que les clés de second niveau pour vos champs de groupe.
-
Mappez la réponse API formatée dans le champ Liste de la carte Résultats de retour.
-
-
Cliquez sur Enregistrer et nommez le flux.
Exemple
Cet exemple de flux de moniteur d'interrogation utilise un objet curseur pour stocker un horodatage et enregistrer des informations sur les nouveaux utilisateurs ajoutés à un service distant.
Il s'agit de la vue initiale lorsque vous créez une carte d'événement Moniteur d'interrogation. Elle contient la carte d'événement Moniteur d'interrogation, ainsi que les cartes Contrôle de flux, Curseur et Sorties de retour.
L'exemple suivant décrit la manière de construire ce flux d'événement de moniteur d'interrogation :
-
Sur la carte d'événement Moniteur d'interrogation, le type de champ Curseur est un
Object, car le curseur contient des informations d'enregistrement en plus de l'horodatage. -
Une carte de fonction Objet Obtenir récupère l'horodatage de l'objet curseur, qui est stocké dans une clé appelée
cursor_value.Dans cet exemple, la sortie de la carte est un champ de type Date et heure appelé
saved start date. -
Une carte Date et heure Maintenant génère un nouvel horodatage pour cette exécution du moniteur d'interrogation. Pour plus de commodité, le nom du champ est modifié en
date - New end date. -
Les champs
saved start dateetdate - New end datese combinent en une carte Objet Construire pour créer un objet de requête appeléoutput. -
La carte Contrôle de flux Flux d'appel effectue un appel vers l'API externe. Elle utilise le flux
httpHelperpour votre connecteur, avec un appelGETau point de terminaison/v1/users.Construisez votre filtre de requête API pour sélectionner les enregistrements avec une fenêtre de temps. Par exemple, voici un objet de requête qui vérifie les événements de création d'utilisateur dans une période d'un mois :
{ "createdBefore": 2025-02-01T00:00:00.000Z, "createdAfter": 2025-01-01T00:00:00.000Z }La carte Contrôle de flux Flux d'appel utilise la connexion fournie sur la carte Moniteur d'interrogation pour l'autorisation de la connexion.
Dans l'exemple, cette carte renvoie une liste d'objets appelée
newUsersList. -
Les cartes mentionnées aux étapes 4 et 5 sont incluses dans le bloc Essai d'une carte Branche Si erreur.
Si l'appel d'API aboutit, la sortie de la carte Essai est une liste de nouveaux utilisateurs. Cette liste d'objets est envoyée à la carte Sorties de retour.
Le bloc Si erreur de cette fonction n'est pas affiché. Cependant, il spécifie un processus qui gérera les erreurs rencontrées lors de la définition de l'objet curseur ou de l'appel d'API.
-
La carte Objet Construire met à jour l'objet curseur. Elle remplace la valeur de l'horodatage précédent stockée dans la clé
cursor_valueavec la valeurdate - New end date. Il s'agit de l'horodatage le plus récent, et la prochaine itération du moniteur d'interrogation utilisera cette valeur pour le champsaved start date. -
La carte Contrôle de flux Curseur met à jour la valeur Propriétés pour le curseur du flux de moniteur d'interrogation de cet utilisateur.
-
La carte Sorties de retour renvoie la liste des nouveaux utilisateurs au flux qui a appelé le moniteur d'interrogation et termine cette exécution.
Tester un événement de moniteur d'interrogation
Pour tester votre événement de moniteur d'interrogation dans Connector Builder, vous pouvez définir la valeur Curseur dans la boîte de dialogue Exécuter.
Saisissez une valeur provenant d'une itération précédente de l'exécution de moniteur d'interrogation pour simuler la valeur du curseur.
Vous pouvez également laisser le curseur sous forme de valeur nulle pour simuler la première exécution du moniteur d'interrogation.
Étapes suivantes