Dynamodb wyzwala rodzaje wyzwalaczy i wszystko, co musisz wiedzieć

Dynamodb wyzwala rodzaje wyzwalaczy i wszystko, co musisz wiedzieć
DynamoDB wyzwalają działanie jak wyzwalacze w dowolnej innej bazie danych. Funkcja umożliwia automatyczne wykonywanie różnych niestandardowych działań na podstawie tablicy aktualizacji poziomu poziomu w tabeli lub indeksie DynamoDB. Pozostaje najbardziej wydajną metodą przechwytywania zmian na poziomie lub pozycji w pozycji w tabeli DynamoDB.

Wyzwalacze to na ogół elementy kodu, które automatycznie działają i reagują na nowe zdarzenia, które występują w celu uruchamiania funkcji AWS Lambda. Możesz użyć wyzwalaczy DynamoDB do budowy potężnych i funkcjonalnych aplikacji związanych z zdarzeniami, które występują w twoich strumieniach lub bazie danych.

W tym artykule omówiono podstawy wyzwalaczy DynamoDB. Poznasz typy wyzwalaczy DynamODB, jak włączyć każdy typ, i kilka przypadków użycia.

Rodzaje wyzwalaczy DynamODB

Istnieją dwa rodzaje wyzwalaczy DynamoDB. Zawierają:

A. Strumienie DynamoDB

Strumień DynamoDB to uporządkowany lub zaprogramowany przepływ informacji oparty na zmianach związanych z elementami w tabeli DynamODB. Za każdym razem, gdy włączysz strumień w określonej tabeli, DynamoDB przechwytuje informacje o każdej zmianie w elemencie danych w tabeli i przechowuje informacje w strumieniu.

Strumienie mogą wyzwolić funkcję Lambda po skonfigurowaniu funkcji. Możesz skonfigurować swoje strumienie, aby uruchomić funkcję Lambda przy użyciu następujących kroków:

Krok 1: Potwierdź, czy Twój system spełnia wszystkie warunki wstępne

Po pierwsze, powinieneś rozmawiać z podstawowymi operacjami AWS Lambda. Powinieneś również potwierdzić, czy Twój komputer ma najnowszą wersję AWS. Następujące polecenie powinno pomóc:

Wersja AWS

Odpowiedź dla poprzedniego polecenia powinna przyjąć następujący format. Zauważ, że ta ilustracja wykorzystuje AWS SDK dla Python Boto3.

AWS-CLI/2.X.x Python/3.X.x Linux/4.X.X-XXX-STD BOTOCORE/2.X.X

Nasza odpowiedź jest jak ilustrowana w następujący sposób:

Krok 2: Utwórz tabelę DynamoDB i przejdź do włączenia strumieni na niej

Utwórz tabelę, dla której chcesz włączyć swoje strumienie. Zauważ, że możesz również włączyć strumienie w istniejącej tabeli.

Używamy AWS SDK dla Pythona, aby utworzyć naszą tabelę, jak pokazano w następującym wierszu poleceń:

Import Boto3
# Utwórz klienta DynamoDB
DynamODB = Boto3.Klient („DynamODB”)
# Utwórz tabelę z kluczowym kluczem „PK” i kluczem sortowania „SK”
TABLE_NAME = „My-Table-Nazwa”
atrybut_definitions = [

„Atrybutename”: „pk”,
„AtrybtuteType”: „s”
,

„Atrybutename”: „SK”,
„AtrybtuteType”: „s”
,
]
key_schema = [

„Atrybutename”: „pk”,
„KeyType”: „Hash”
,

„Atrybutename”: „SK”,
„KeyType”: „Zakres”
,
]
Provisioned_Throughput =
„ReadCapacicitunits”: 10,
„WriteCapaciciteUnits”: 10

Dynamodb.Utwórz_tabel (
TableName = Table_name,
AtrybutedeFinitions = atrybut_definitions,
Keyschema = key_schema,
ProvisionedThroughput = Provisioned_Throughput,
Streamspecification =
„Streamenabled”: prawda,
„StreamViewType”: „NEW_AND_OLD_IMAGES”

)

Krok 3: Utwórz funkcję AWS Lambda

Czas stworzyć funkcję AWS Lambda. Musisz także określić strumień DynamoDB jako wyzwalacz. Polecenie Pythona jest następujące:

Import Boto3
# Utwórz klienta Lambda
lambda_client = boto3.Klient („Lambda”)
# Skonfiguruj szczegóły funkcji
funkcja_name = „my-function”
runtime = 'Python3.11 '
Rola = 'arn: AWS: IAM :: X123456789012Y: Rola/Lambda-Basic-Execution ”
Handler = 'Funkcja.treser'
# Utwórz funkcję
lambda_client.create_function (
FunkcjaName = Function_name,
Runtime = Runtime,
Rola = rola,
Handler = Handler,
# Inne konfiguracje funkcji, takie jak zmienne środowiskowe, ustawienia VPC itp.
)
# Uzyskaj nazwę zasobów Amazon (ARN) funkcji
funkcja_arn = Lambda_Client.get_function (funkcjaName = function_name) ['Configuration'] ['functionarn']
# Skonfiguruj szczegóły spustu strumienia
Stream_arn = 'arn: AWS: DynamODB: EU-West-1: 123456789012: Tabela/My-Table/Stream/2022-01-02t00: 00: 00.000 '
start_position = „najnowszy”
# Dodaj spust do funkcji
lambda_client.create_event_source_mapping (
Eventourcearn = stream_arn,
FunkcjaName = funkcja_arn,
Uruchamianie = początkowe_position,
# Inne opcje konfiguracji, w tym rozmiar partii, maksymalne próby ponownej ponownej próbki itp.
)

Poprzedni kod tworzy nową funkcję Lambda o określonej nazwie, środowisku wykonawczym i wykonaniu. Uruchamia również funkcję, która słucha zmian w określonym strumieniu DynamoDB.

Krok 4: Włącz dostęp do rekordów Steam

Użyj wydarzenie parametr w poprzednim kodzie, aby uzyskać dostęp do rekordów strumienia, aby uzyskać dostęp do rekordów strumienia. Musisz także użyć wydarzenie.Dokumentacja pole, aby uzyskać dostęp do poszczególnych rekordów strumienia. Każdy rekord ma Dynamodb pole, które zawiera dane rekordu strumienia.

Krok 5: Włącz dostęp do nowego obrazu

Kontynuuj, aby umożliwić dostęp do nowego obrazu przez wydarzenie.Zapisy [i].Dynamodb.Nowy wygląd pole. Po zakończeniu ustaw wydarzenie.Zapisy [i].Dynamodb.Oldimage Aby uzyskać dostęp do starego obrazu elementu, zanim jakiekolwiek zmiany.

Użyj wydarzenie.Zapisy [i].Nazwa wydarzenia sekcja w celu ustalenia rodzaju nastąpionej zmiany (e.G., „Wstaw”, „Modyfikuj”, „Usuń”) i użyj wydarzenie.Zapisy [i].eventId pole, aby jednoznacznie zidentyfikować każdy rekord strumienia.

Krok 6: Potwierdź ARN swojego strumienia

Użyj wydarzenie.Zapisy [i].Eventourcearn pole, aby poznać nazwę zasobów Amazon (ARN) włączonego strumienia.

Krok 7: Przetwarzaj odpowiednio rejestrację strumienia

Przetwarzanie strumienia zgodnie z żądaniem umożliwia wykonywanie wszelkich niezbędnych działań. Za pomocą analizy strumienia możesz potwierdzić odbiór rekordów strumienia, powracając z funkcji.

B. DynamoDB wyzwalają przy użyciu zdarzeń AWS CloudWatch

Drugim typem wyzwalaczy DynamoDB używa zdarzeń CloudWatch. Możesz użyć tej funkcji, aby skonfigurować reguły pasujące do wybranych zdarzeń w strumieniu zdarzeń DynamoDB. Wydarzenie CloudWatch trogguje funkcję AWS Lambda, gdy reguła pasuje do zdarzenia.

Poniżej znajduje się przykład kroków, które są zaangażowane podczas tworzenia reguły zdarzeń CloudWatch, aby uruchomić funkcję AWS Lambda za każdym razem, gdy dodasz element do tabeli DynamoDB. Korzystamy z konsoli zarządzania AWS.

  • Skonfiguruj strumień DynamoDB na stole, który chcesz monitorować.
  • Utwórz funkcję Lambda, którą wywołuje wyzwalacz.
  • Utwórz regułę zdarzeń CloudWatch z wzorem, który pasuje do zdarzeń strumienia DynamODB, na którym chcesz wyzwolić.
  • Wybierz funkcję Lambda jako cel reguły.

Teraz, ilekroć dodasz, zmodyfikujesz lub usuniesz element, odpowiednie zdarzenie jest wysyłane do strumienia DynamoDB, które wyzwala regułę zdarzeń CloudWatch i wywołuje funkcję Lambda.

Wniosek

Ten artykuł jest wszystkim, co musisz wiedzieć o wyzwalaczy DynamoDB. Co ważniejsze, mamy nadzieję, że możesz włączyć wyzwalacze DyanModb bezpośrednio w twoich strumieniach lub za pomocą CloudWatchEvents.