Une machine d'état Step Functions se met en pause lorsqu'elle reçoit une commande jusqu'à ce qu'un autre service confirme la commande en ajoutant un enregistrement à une table DynamoDB. Quelle solution permettra à la machine d'état de reprendre le traitement après l'apparition de l'enregistrement DynamoDB ?
Choisissez une réponse
Appuyez sur une option pour vérifier votre réponse.
Bonne réponse : Abonnez une fonction Lambda au flux DynamoDB afin que la fonction s'exécute lorsqu'un nouvel enregistrement est ajouté. Lorsque la fonction reçoit l'enregistrement approprié, appelez la commande Step Functions redrive execution sur la machine d'état en cours d'exécution..
Pourquoi c'est la réponse
La bonne approche consiste à utiliser un flux DynamoDB pour déclencher une fonction Lambda lorsqu'un nouvel enregistrement est ajouté. La fonction Lambda peut alors vérifier si l'enregistrement correspond à la confirmation attendue et, si c'est le cas, appeler l'API Step Functions SendTaskSuccess (ou SendTaskHeartbeat si la tâche est en attente) pour reprendre la machine d'état. Cela permet une reprise asynchrone et événementielle, évitant le polling coûteux. L'option de polling direct de la machine d'état (avec GetItem ou une Lambda) est inefficace et coûteuse car elle consomme des ressources en attendant activement. L'arrêt et le redémarrage d'une nouvelle exécution de la machine d'état perdraient l'état et le contexte de l'exécution précédente, ce qui n'est pas souhaitable.
Réussissez votre examen — sans la chasse aux réponses interminable
Obtenez toutes les questions et explications vérifiées pour cet examen en un seul endroit, et économisez des heures de préparation. Plus de 1 000 certifications · Plus de 20 langues · Gratuit pour commencer.
Réussissez votre examen plus rapidement → Pas de carte requise