DynamoDB löst Arten von Triggern und alles, was Sie wissen müssen

DynamoDB löst Arten von Triggern und alles, was Sie wissen müssen
DynamoDB -Auslöser funktionieren wie Auslöser in jeder anderen Datenbank. Die Funktion ermöglicht die automatische Ausführung verschiedener benutzerdefinierter Aktionen basierend auf einem Array von Level-Updates auf Element-Ebene in Ihrer DynamoDB-Tabelle oder Ihrem Index. Es bleibt die effizienteste Methode, um die Änderungen auf Methodenebene oder Elementebene auf einem Element in Ihrer DynamoDB-Tabelle zu erfassen.

Auslöser sind im Allgemeinen Codestücke, die automatisch ausführen und auf neue Ereignisse reagieren, die eine AWS -Lambda -Funktion auslösen. Sie können die DynamoDB-Trigger verwenden, um die leistungsstarken und funktionalen ereignisgesteuerten Anwendungen zu erstellen, die in Ihren Streams oder Datenbank auftreten.

In diesem Artikel werden die Grundlagen von DynamoDB -Triggern erörtert. Sie werden die Arten von DynamoDB -Triggern, die Aktivierung jedes Typs und einige Anwendungsfälle kennen.

Arten von Dynamodbtriggern

Es gibt zwei Arten von Dynamodb -Triggern. Sie beinhalten:

A. DynamoDB -Streams

Ein DynamoDB -Stream ist ein geordneter oder programmierter Informationsfluss basierend auf Änderungen, die mit Elementen in einer DynamoDB -Tabelle zugeordnet sind. Wenn Sie einen Stream in einer bestimmten Tabelle aktivieren, erfasst DynamoDB die Informationen zu jeder Änderung eines Datenelements in der Tabelle und speichert die Informationen in einem Stream.

Die Streams können die Lambda -Funktion auslösen, sobald Sie die Funktion konfigurieren. Sie können Ihre Streams einrichten, um eine Lambda -Funktion aus den folgenden Schritten auszulösen:

Schritt 1: Bestätigen Sie, ob Ihr System alle Voraussetzungen erfüllt

Zunächst sollten Sie mit den Basis AWS Lambda Operations unterhalten werden. Sie sollten auch bestätigen, ob Ihr Computer die neueste AWS -Version hat. Der folgende Befehl sollte helfen:

AWS -Version

Die Antwort für den vorherigen Befehl sollte das folgende Format annehmen. Beachten Sie, dass diese Illustration AWS SDK für Python Boto3 verwendet.

AWS-CLI/2.X.x python/3.X.x Linux/4.X.x-xxx-std botocore/2.X.X

Unsere Antwort ist wie im Folgenden dargestellt:

Schritt 2: Erstellen Sie eine DynamoDB -Tabelle und aktivieren Sie die Streams darauf

Erstellen Sie die Tabelle, für die Sie Ihre Streams aktivieren möchten. Beachten Sie, dass Sie die Streams auch in einer vorhandenen Tabelle aktivieren können.

Wir verwenden das AWS SDK für Python, um unsere Tabelle zu erstellen, wie in der folgenden Befehlszeile gezeigt:

Boto3 importieren
# Erstellen Sie einen DynamoDB -Client
DynamoDB = Boto3.Client ('DynamoDB')
# Erstellen Sie eine Tabelle mit einem Primärschlüssel 'PK' und einem Sort -Schlüssel 'SK'
table_name = 'my-table-name' '
Attribute_definitions = [

'Attributename': 'PK',
'AttributType': 's'
,

'AttributeName': 'SK',
'AttributType': 's'
,
]
Key_schema = [

'Attributename': 'PK',
'Keytype': 'Hash'
,

'AttributeName': 'SK',
'Keytype': 'Range'
,
]
vorbereitet_throughput =
'ReadCapacityUnits': 10,
'WriteCapacityUnits': 10

Dynamode.Tabelle erstellen(
TableName = table_name,
AttributeDInitions = Attribute_Definitions,
Keyschema = key_schema,
ProvisionedThroughput = provisioned_throughput,
StreamSpecification =
'Streamababled': wahr,
'StreamViewType': 'new_and_old_images' '

)

Schritt 3: Erstellen Sie eine AWS -Lambda -Funktion

Es ist Zeit, eine AWS -Lambda -Funktion zu erstellen. Sie müssen auch den DynamoDB -Stream als Auslöser angeben. Der Befehl python lautet wie folgt:

Boto3 importieren
# Erstellen Sie einen Lambda -Kunden
lambda_client = boto3.Kunde ('Lambda')
# Richten Sie die Funktionsdetails ein
function_name = 'My-Funktion' '
Laufzeit = 'Python3.11 '
Rolle = 'ARN: AWS: IAM :: X123456789012Y: ROLLE/Lambda-Basic-Execution'
Handler = 'Funktion.Handler '
# Erstellen Sie die Funktion
lambda_client.create_function (
FunktionName = Funktion_Name,
Laufzeit = Laufzeit,
Rolle = Rolle,
Handler = Handler,
# Andere Funktionskonfigurationen wie Umgebungsvariablen, VPC -Einstellungen usw.
)
# Holen Sie sich den Amazon -Ressourcennamen (ARN) der Funktion
function_arn = lambda_client.get_function (FunktionName = function_name) ['Konfiguration'] ['Funktionarn']
# Richten Sie die Stream -Triggerdetails ein
Stream_arn = 'ARN: AWS: DynamoDB: EU-West-1: 123456789012: Tabelle/My-Table/Stream/2022-01-02T00: 00: 00.000 '
start_position = 'letztes'
# Fügen Sie den Auslöser der Funktion hinzu
lambda_client.CREATE_EVENT_SOURCE_MAPPING (
EventSourcearn = stream_arn,
FunktionName = Function_arn,
Startposition = start_position,
# Andere Konfigurationsoptionen, einschließlich Stapelgröße, maximale Wiederholungsversuche usw.
)

Der vorherige Code erstellt eine neue Lambda -Funktion mit dem angegebenen Namen, der Laufzeit und der Ausführungsrolle. Es löst auch die Funktion aus, die Änderungen im angegebenen DynamoDB -Stream hört.

Schritt 4: Aktivieren Sie einen Zugriff auf die Steam -Datensätze

Benutze die Fall Parameter im vorherigen Code, um auf Ihre Stream -Datensätze zuzugreifen, um auf die Stream -Datensätze zuzugreifen. Sie müssen auch die verwenden Fall.Aufzeichnungen Feld, um auf die einzelnen Stream -Datensätze zuzugreifen. Jeder Datensatz hat a Dynamode Feld, das die Daten des Stream -Datensatzes enthält.

Schritt 5: Aktivieren Sie einen Zugriff auf das neue Bild

Ermöglichen Sie einen Zugriff auf das neue Bild über das Fall.Aufzeichnungen [i].Dynamode.Neues Bild Feld. Sobald Sie fertig sind, stellen Sie die fest Fall.Aufzeichnungen [i].Dynamode.Oldimage Sozugieren Sie auf das alte Bild des Elements vor Änderungen.

Benutze die Fall.Aufzeichnungen [i].Veranstaltungsname Abschnitt, um die Art der Änderung zu bestimmen (e.G., "Einfügen", "modifizieren", "entfernen") und verwenden Sie die Fall.Aufzeichnungen [i].EventId Feld, um jeden Stream -Datensatz eindeutig zu identifizieren.

Schritt 6: Bestätigen Sie den ARN Ihres Streams

Benutze die Fall.Aufzeichnungen [i].EventSourcearn Feld, um den Amazon -Ressourcennamen (ARN) des aktivierten Streams zu kennen.

Schritt 7: Verarbeiten Sie die Stream -Aufzeichnungen entsprechend

Durch die Bearbeitung Ihres Streams können Sie alle erforderlichen Aktionen ausführen. Mit der Stream -Analyse können Sie den Erhalt Ihrer Stream -Datensätze bestätigen, indem Sie aus der Funktion zurückkehren.

B. DynamoDB -Trigger mit AWS CloudWatch -Ereignissen

Die zweite Art von Dynamodb -Triggern verwendet die CloudWatch -Ereignisse. Mit dieser Funktion können Sie die Regeln einrichten, die mit den ausgewählten Ereignissen im Strom von DynamoDB -Ereignissen übereinstimmen. Das CloudWatch -Ereignis treibt eine AWS -Lambda -Funktion, wenn eine Regel mit einem Ereignis übereinstimmt.

Das Folgende ist ein Beispiel für die Schritte, die beim Erstellen einer CloudWatch -Ereignisregel beteiligt sind, um eine AWS -Lambda -Funktion auszulösen, wenn Sie Ihrer Dynamodb -Tabelle ein Element hinzufügen. Wir verwenden die AWS -Managementkonsole.

  • Richten Sie einen DynamoDB -Stream auf der Tabelle ein, die Sie überwachen möchten.
  • Erstellen Sie eine Lambda -Funktion, die der Trigger aufruft.
  • Erstellen Sie eine CloudWatch -Ereignisregel mit einem Muster, das den DynamoDB -Stream -Ereignissen entspricht, auf die Sie ausgelöst werden möchten.
  • Wählen Sie die Lambda -Funktion als Ziel für die Regel aus.

Wenn Sie ein Element hinzufügen, ändern oder löschen, wird das entsprechende Ereignis an den DynamoDB -Stream gesendet, der die CloudWatch -Ereignisregel auslöst und die Lambda -Funktion aufruft.

Abschluss

Dieser Artikel ist alles, was Sie über DynamoDB -Trigger wissen müssen. Noch wichtiger ist, wir hoffen, dass Sie die DyanModb -Auslöser in Ihren Streams direkt aktivieren oder CloudWatches Events verwenden können.