Una macchina a stati di Step Functions si mette in pausa quando riceve un ordine finché un altro servizio non conferma l'ordine aggiungendo un record a una tabella DynamoDB. Quale soluzione consentirà alla macchina a stati di riprendere l'elaborazione dopo la comparsa del record DynamoDB?
Scegli una risposta
Tocca un'opzione per controllare la tua risposta.
Risposta corretta: Sottoscrivere una funzione Lambda allo stream DynamoDB in modo che la funzione venga eseguita quando viene aggiunto un nuovo record. Quando la funzione riceve il record appropriato, chiamare il comando redrive execution di Step Functions sulla macchina a stati in esecuzione..
Perché questa è la risposta
La soluzione corretta sfrutta gli stream di DynamoDB e una funzione Lambda per riprendere l'esecuzione della Step Functions in modo efficiente e reattivo. Quando un nuovo record viene aggiunto alla tabella DynamoDB, lo stream attiva la funzione Lambda. Questa funzione può quindi identificare il record pertinente e utilizzare l'API SendTaskSuccess o SendTaskFailure di Step Functions (o redrive execution per le esecuzioni fallite/interrotte, sebbene l'intento qui sia di notificare il completamento di un'attività in attesa) per notificare alla macchina a stati che l'attività è stata completata, permettendole di riprendere. Il polling continuo di DynamoDB (opzioni 1 e 4) è inefficiente e costoso, poiché la macchina a stati o la Lambda sprecano risorse controllando ripetutamente la tabella. L'opzione 3, che interrompe e riavvia una nuova esecuzione, perderebbe lo stato e il contesto dell'esecuzione originale, non essendo una ripresa ma un riavvio.
Supera il tuo esame — senza l'infinita caccia alle risposte
Ottieni ogni domanda e spiegazione verificata per questo esame in un unico posto, e risparmia ore di preparazione. Oltre 1.000 certificazioni · Oltre 20 lingue · Inizia gratuitamente.
Supera il tuo esame più velocemente → Nessuna carta richiesta