Capitalisation boursière: $3.3687T -4.190%
Volume(24h): $171.1235B 4.910%
  • Capitalisation boursière: $3.3687T -4.190%
  • Volume(24h): $171.1235B 4.910%
  • Indice de peur et de cupidité:
  • Capitalisation boursière: $3.3687T -4.190%
Cryptos
Les sujets
Cryptospedia
Nouvelles
Cryptosopique
Vidéos
Top nouvelles
Cryptos
Les sujets
Cryptospedia
Nouvelles
Cryptosopique
Vidéos
bitcoin
bitcoin

$107752.158786 USD

-3.13%

ethereum
ethereum

$2538.819788 USD

-6.33%

tether
tether

$1.000228 USD

0.02%

xrp
xrp

$2.327763 USD

-5.63%

bnb
bnb

$663.531188 USD

-3.73%

solana
solana

$174.740159 USD

-4.91%

usd-coin
usd-coin

$0.999844 USD

0.00%

dogecoin
dogecoin

$0.228146 USD

-9.29%

cardano
cardano

$0.753894 USD

-8.91%

tron
tron

$0.272649 USD

-0.60%

sui
sui

$3.647001 USD

-6.43%

hyperliquid
hyperliquid

$32.327324 USD

-8.84%

chainlink
chainlink

$15.639407 USD

-8.04%

avalanche
avalanche

$23.245911 USD

-9.67%

stellar
stellar

$0.289001 USD

-6.83%

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.

Autres articles publiés sur May 25, 2025