![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
Articles d’actualité sur les crypto-monnaies
Avez-vous déjà voulu suspendre un flux de travail automatisé pour attendre une décision humaine?
May 13, 2025 at 07:17 am
Vous avez peut-être besoin d'approbation avant de provisionner les ressources cloud, de promouvoir un modèle d'apprentissage automatique à la production ou de facturer la carte de crédit d'un client.
Have you ever wanted to pause an automated workflow to wait for a human decision? Maybe you need approval before provisioning cloud resources, promoting a machine learning model to production, or charging a customer’s credit card.
Avez-vous déjà voulu suspendre un flux de travail automatisé pour attendre une décision humaine? Vous avez peut-être besoin d'approbation avant de provisionner les ressources cloud, de promouvoir un modèle d'apprentissage automatique à la production ou de facturer la carte de crédit d'un client.
In many data science and machine learning workflows, automation gets you 90% of the way — but that critical last step often needs human judgment. Especially in production environments, model retraining, anomaly overrides, or large data movements require careful human review to avoid expensive mistakes.
Dans de nombreux flux de travail de science des données et d'apprentissage automatique, l'automatisation vous permet de 90% du chemin - mais cette dernière étape critique a souvent besoin d'un jugement humain. En particulier dans les environnements de production, le recyclage des modèles, les remplacements d'anomalies ou les grands mouvements de données nécessitent un examen humain minutieux pour éviter les erreurs coûteuses.
In my case, I needed to manually review situations where my system flagged more than 6% of customer data for anomalies — often due to accidental pushes by customers. Before I implemented a proper workflow, this was handled informally: developers would directly update production databases (!) — risky, error-prone, and unscalable.
Dans mon cas, je devais examiner manuellement les situations où mon système a signalé plus de 6% des données des clients pour les anomalies - souvent en raison de poussées accidentelles par les clients. Avant de mettre en œuvre un flux de travail approprié, cela a été géré de manière informelle: les développeurs mettraient directement à jour les bases de données de production (!) - Risque, sujette aux erreurs et sans écheclable.
To solve this, I built a scalable manual approval system using AWS Step Functions, Slack, Lambda, and SNS — a cloud-native, low-cost architecture that cleanly paused workflows for human approvals without spinning up idle compute.
Pour résoudre ce problème, j'ai construit un système d'approbation manuel évolutif à l'aide de fonctions AWS Step, Slack, Lambda et SNS - une architecture native du cloud et à faible coût qui s'arrêtait proprement des workflows pour les approbations humaines sans faire tourner le calcul inactif.
In this post, I’ll walk you through the full design, the AWS resources involved, and how you can apply it to your critical workflows.
Dans cet article, je vous guiderai à travers la conception complète, les ressources AWS impliquées et comment vous pouvez l'appliquer à vos flux de travail critiques.
Let’s get into it 👇
Allons-y 👇
The Solution
La solution
My application is deployed in the AWS ecosystem, so we’ll use Aws Step Functions to build a state machine that:
Mon application est déployée dans l'écosystème AWS, nous allons donc utiliser les fonctions AWS Step pour créer une machine d'état qui:
Here is a youtube video showing the demo and actual application in action:
Voici une vidéo YouTube montrant la démo et l'application réelle en action:
I have also hosted the live demo app here →👉 https://v0-manual-review-app-fwtjca.vercel.app
J'ai également hébergé l'application de démonstration en direct ici → 👉 https://v0-manual-review-app-fwtjca.vercel.app
All code is hosted here with the right set of IAM permissions.
Tout le code est hébergé ici avec le bon ensemble d'autorisations IAM.
Step-by-Step Implementation
Implémentation étape par étape
The flow above generates a dataset, uploads it to AWS S3 and if a review is required, then invokes the Manual Review lambda. On the manual review step, we’ll use a Task lambda with an invoke on WaitForTaskToken, which pauses execution until resumed. The lambda reads the token this way:
Le flux ci-dessus génère un ensemble de données, le télécharge sur AWS S3 et si une revue est requise, invoque la révision manuelle Lambda. À l'étape de la révision manuelle, nous utiliserons une tâche Lambda avec une invocation sur WaitfortaskToken, qui s'arrête l'exécution jusqu'à la reprise. Le Lambda lit le jeton de cette façon:
This Lambda sends a Slack message that includes the task token so the function knows what execution to resume.
Ce Lambda envoie un message Slack qui inclut le jeton de tâche afin que la fonction sache quelle exécution reprendre.
2. Before the we send out the slack notification, we need to
2. Avant que nous envoyons la notification de jeu, nous devons
I followed the youtube video here for my setup.
J'ai suivi la vidéo YouTube ici pour ma configuration.
3. Once the above is setup, setup the variables into the web-hook step of the slack workflow:
3. Une fois la configuration ci-dessus, configurez les variables dans l'étape de l'observation du web du flux de travail Slack:
And use the variables with a helpful note in the following step:
Et utilisez les variables avec une note utile à l'étape suivante:
The final workflow will look like this:
Le flux de travail final ressemblera à ceci:
4. Send a Slack Notification published to an SNS topic (you can alternately use slack-sdk as well) with job parameters. Here is what the message will look like:
4. Envoyez une notification Slack publiée à un sujet SNS (vous pouvez également utiliser alternativement Slack-SDK) avec les paramètres du travail. Voici à quoi ressemblera le message:
This Lambda sends a Slack message that includes the task token so the function knows what execution to resume.
Ce Lambda envoie un message Slack qui inclut le jeton de tâche afin que la fonction sache quelle exécution reprendre.
5. Once a review notification is received in slack, the user can approve or reject it. The step function goes into a wait state until it receives a user response; however the task part is set to expire in 24 hours, so inactivity will timeout the step function.
5. Une fois qu'une notification d'examen est reçue dans Slack, l'utilisateur peut l'approuver ou le rejeter. La fonction d'étape va dans un état d'attente jusqu'à ce qu'il reçoive une réponse d'utilisateur; Cependant, la partie de la tâche est définie pour expirer dans 24 heures, l'inactivité sera donc dénoncée la fonction de pas.
Based on whether the user approves or rejects the review request, the rawPath gets set and can be parsed here: code
Selon le fait que l'utilisateur approuve ou rejette la demande d'examen, le Rawpath est défini et peut être analysé ici: Code
The receiving API Gateway + Lambda combo:
Le récepteur API Gateway + Lambda combo:
Example:
Exemple:
Note: Lambda configured with WaitForTaskToken must wait. If you don’t send the token, your workflow just stalls.
Remarque: Lambda configuré avec WaitfortaskToken doit attendre. Si vous n'envoyez pas le jeton, votre workflow est juste en train de caler.
Bonus: If you need email or SMS alerts, use SNS to notify a broader group.Just sns.publish() from within your Lambda or Step Function.
Bonus: si vous avez besoin d'alertes par e-mail ou SMS, utilisez SNS pour informer un groupe plus large. Juste sn.publish () à partir de votre lambda ou de votre fonction de pas.
Testing
Essai
Once the manual approval system was wired up, it was time to kick the tires. Here’s how I tested it:
Une fois le système d'approbation manuel câblé, il était temps de donner un coup de pied aux pneus. Voici comment je l'ai testé:
I tested all major paths:
J'ai testé tous les principaux chemins:
Behind the scenes, I also verified that :
Dans les coulisses, j'ai également vérifié que:
I highly recommend testing not just happy paths, but also “what if nobody clicks?” and “what if Slack glitches?” — catching these edge cases early saved me headaches later.
Je recommande fortement de tester non seulement des chemins heureux, mais aussi "Et si personne ne clique?" Et "Et si Slack Glitches?" - Catching ces cas de bord m'a fait sauver les maux de tête plus tard.
Lessons Learned
Leçons apprises
Wrapping Up
Emballage
Adding human-in-the-loop logic doesn’t have to mean duct tape and cron jobs. With Step Functions + Slack, you can build reviewable, traceable, and production-safe approval flows.
L'ajout de logique humaine dans la boucle n'a pas besoin de signifier du ruban adhésif et des travaux cron. Avec les fonctions d'étape + Slack, vous pouvez créer des flux d'approbation révisables, traçables et sécurisés en matière de production.
If this helped, or you’re trying something similar, drop a note in the comments! Let’s build better workflows.
Si cela a aidé, ou si vous essayez quelque chose de similaire, déposez une note dans les commentaires! Construisons de meilleurs flux de travail.
Note: All images in this article were created by the author
Remarque: toutes les images de cet article ont été créées par l'auteur
Clause de non-responsabilité:info@kdj.com
Les informations fournies ne constituent pas des conseils commerciaux. kdj.com n’assume aucune responsabilité pour les investissements effectués sur la base des informations fournies dans cet article. Les crypto-monnaies sont très volatiles et il est fortement recommandé d’investir avec prudence après une recherche approfondie!
Si vous pensez que le contenu utilisé sur ce site Web porte atteinte à vos droits d’auteur, veuillez nous contacter immédiatement (info@kdj.com) et nous le supprimerons dans les plus brefs délais.
-
- Pour la génération Z, la vie numérique n'est pas une agitation latérale - c'est la scène principale.
- May 25, 2025 at 04:55 am
- Il s'agit de la première génération à grandir entièrement en ligne, couramment les mèmes, multitâche sur cinq applications à la fois et sceptique envers les systèmes traditionnels. Il n'est donc pas surprenant qu'ils se tournent vers la crypto-monnaie non seulement pour l'investissement, mais pour tout, du shopping et du streaming aux créateurs de basculement et de jeux.
-
-
-
-
-
-
-
-