Oczywiście możesz również użyć strumieni DynamoDB, aby uruchomić dalsze procesy i funkcje AWS Lambda. Lambda z definicji to usługa obliczeniowa bez serwera, która uruchamia Twój kod w odpowiedzi na zdarzenia i automatycznie zarządza zasobami obliczeniowymi dla Ciebie.
Możesz użyć Lambda do napisania kodu w węźle.JS, Python, Java lub C# w celu przetwarzania rekordów strumienia i podejmowania odpowiednich działań. Główną zaletą integracji strumieni DynamoDB z Lambda jest to, że Lambda umożliwia uruchamianie wspieranych usług lub kodów aplikacji bez potrzeby administracji.
Jak używać strumieni AWS DynamoDB z Lambda
Chociaż możliwe jest utworzenie funkcji Lambda, która zużywa zdarzenia i zdarzenia ze strumienia DynamODB, proces może być dość zadanie, szczególnie przy pierwszej próbie. Poniższe kroki pomogą:
Krok 1: Upewnij się, że Twój system spełnia warunki wstępne
Ta procedura odniesie sukces tylko wtedy, gdy znasz podstawowe operacje i procesy Lambda. Dlatego powinno to być pierwsze, aby zapewnić, że twoje zrozumienie Lambda jest powyżej średniej.
Drugim warunkiem wstępnym, który warto rozważyć, jest potwierdzenie wersji AWS twojego systemu. Możesz użyć następującego polecenia:
AWS -IVERSIONWynik dla dostarczonego polecenia powinien wyglądać tak:
AWS-CLI/2.X.x Python/3.X.x Linux/4.X.X-XXX-STD BOTOCORE/2.X.XPodana przykładowa odpowiedź zawiera zainstalowaną wersję AWS CLI (AWS-CLI/2.X.X), wersja Python (Python/3.X.X) i system operacyjny (Linux/4.X.x-xxx-std). Ostatnia część odpowiedzi określa wersję biblioteki Botocore, na której działa Twój AWS CLI (Botocore/2.X.X).
Dlatego skończysz na czymś takim:
Krok 2: Utwórz rolę wykonania
Następnym krokiem jest utworzenie roli wykonania w AWS CLI. Rola wykonania to rola AWS tożsamość i zarządzanie dostępem (IAM) przyjęta przez usługę AWS w celu wykonywania zadań w Twoim imieniu. Daje dostęp do zasobów AWS, których będziesz potrzebować po drodze.
Możesz utworzyć rolę za pomocą następującego polecenia:
AWS IAM Create-Role \Poprzednie polecenie jest polecenie AWS CLI, aby stworzyć rolę. Możesz także użyć konsoli zarządzania Amazon, aby stworzyć rolę. Gdy znajdziesz się w konsoli IAM, otwórz Role Strona i kliknij Stwórz rolę przycisk.
Przejdź do następujących:
Możesz także użyć Pythona, najpierw instalując SDK AWS dla Pythona:
PIP Instaluj boto3Krok 3: Włącz strumienie DynamoDB na stole
Musisz włączyć strumienie DynamoDB na stole. Do tej ilustracji używamy Boto3, AWS SDK dla Pythona. Następujące polecenie pomoże:
Import Boto3Ten kod umożliwia strumień DynamoDB w tabeli „MyTable”, która przesyła strumieniowo zarówno nowe, jak i stare obrazy elementów, gdy tylko pojawią się jakiekolwiek zmiany. Możesz wybrać strumieniowo nowe obrazy, gdy tylko StreamViewType do „New_image”.
W szczególności uruchomienie tego kodu może włączyć strumienie na tabelach. Zamiast tego proces może zająć trochę czasu. Możesz użyć metody opisu_tabla, aby sprawdzić status strumienia.
Krok 4: Utwórz funkcję Lambda
Następnym krokiem jest utworzenie funkcji Lambda, która uruchamia strumień DynamoDB. Poniższe kroki powinny pomóc:
To wszystko, co dzieje się podczas tworzenia funkcji Lambda! Twoja funkcja jest teraz wyzwalana, gdy pojawiają się aktualizacje określonej tabeli DynamoDB.
Oto przykład prostej funkcji Pythona, którą może wywołać strumień DynamoDB:
def Lambda_Handler (wydarzenie, kontekst):Ta funkcja iteruje rekordy w obiekcie zdarzenia i drukuje nowy obraz elementu w tabeli DynamoDB, która wyzwala funkcję.
Krok 5: Przetestuj funkcję Lambda
Aby przetestować funkcję Lambda, którą może wyzwolić strumień DynamoDB, możesz użyć Boto3 biblioteka, aby uzyskać dostęp do interfejsu API DynamoDB i odwołać się Metoda lambda Klient, aby uruchomić funkcję.
Oto przykład, jak to zrobić:
Import Boto3Ten kod najpierw wstawia element do mój stół stół, a następnie wyzwala MyFunkcja Funkcja Lambda, wysyłając przykładowy ładunek zdarzenia do funkcji za pomocą odwołać się metoda. Ładunek zdarzenia symuluje zdarzenie DynamoDB Stream, które zawiera nowy obraz elementu, który został właśnie wstawiony.
Następnie możesz sprawdzić dzienniki funkcji Lambda, aby sprawdzić, czy z powodzeniem uruchomiła się i przetworzyła dane dotyczące zdarzenia.
Wniosek
Należy zauważyć, że możesz przywołać wiele razy w przypadku tego samego rekordu strumienia, że strumień DynamoDB może wyzwolić funkcję Lambda. Głównym powodem tego jest to, że rekordy strumienia są ostatecznie spójne i możliwe jest przetwarzanie tego samego rekordu wielokrotnie przez funkcję Lambda. Ważne jest, aby zaprojektować swoją funkcję Lambda, aby poprawnie obsłużyć tę sprawę.