Maszyna stanowa Step Functions wstrzymuje się po otrzymaniu zamówienia, dopóki inna usługa nie potwierdzi zamówienia, dodając rekord do tabeli DynamoDB. Które rozwiązanie pozwoli maszynie stanowej wznowić przetwarzanie po pojawieniu się rekordu DynamoDB?
Wybierz odpowiedź
Dotknij opcji, aby sprawdzić swoją odpowiedź.
Poprawna odpowiedź: Zasubskrybuj funkcję Lambda do strumienia DynamoDB, aby funkcja uruchamiała się po dodaniu nowego rekordu. Gdy funkcja otrzyma odpowiedni rekord, wywołaj polecenie Step Functions redrive execution na uruchomionej maszynie stanowej..
Dlaczego to jest odpowiedź
Poprawna odpowiedź wykorzystuje strumienie DynamoDB (DynamoDB Streams) i funkcję Lambda do asynchronicznego wznowienia maszyny stanowej. Strumień DynamoDB rejestruje wszystkie modyfikacje tabeli, a funkcja Lambda subskrybowana do tego strumienia jest wywoływana, gdy pojawi się nowy rekord. Funkcja Lambda może następnie sprawdzić, czy rekord jest potwierdzeniem zamówienia, i użyć funkcji Step Functions redrive execution (lub SendTaskSuccess dla zadań oczekujących na callback) do wznowienia konkretnego wykonania maszyny stanowej, która czekała na to potwierdzenie. Pozostałe opcje są mniej efektywne lub błędne: Odpytywanie (polling) DynamoDB jest nieefektywne i generuje niepotrzebne koszty oraz opóźnienia. Zatrzymywanie bieżącego wykonania i rozpoczynanie nowego jest błędne, ponieważ utracono by kontekst i stan poprzedniego wykonania. Funkcja Lambda ciągle odpytująca DynamoDB również jest nieefektywna i może prowadzić do przekroczenia limitu czasu Lambda.
Zdaj egzamin — bez niekończącego się szukania odpowiedzi
Uzyskaj wszystkie zweryfikowane pytania i wyjaśnienia do tego egzaminu w jednym miejscu i zaoszczędź godziny przygotowań. Ponad 1000 certyfikacji · Ponad 20 języków · Zacznij za darmo.
Zdaj egzamin szybciej → Karta nie jest wymagana