Verwenden der Lambda-Funktion mit Amazon DynamoDB

DynamoDB kann AWS Lambda auslösen, wenn die Daten zu den Tabellen hinzugefügt, aktualisiert oder gelöscht werden. In diesem Kapitel werden wir an einem einfachen Beispiel arbeiten, das der DynamoDB-Tabelle und AWS Lambda Elemente hinzufügt, die die Daten lesen und E-Mails mit den hinzugefügten Daten senden.

Voraussetzungen

Um Amazon DB und AWS Lambda zu verwenden, müssen Sie die folgenden Schritte ausführen:

  • Erstellen Sie eine Tabelle in DynamoDB mit dem Primärschlüssel

  • Erstellen Sie eine Rolle, die berechtigt ist, mit DynamoDBand AWS Lambda zu arbeiten.

  • Funktion in AWS Lambda erstellen

  • AWS Lambda Trigger zum Senden von E-Mails

  • Fügen Sie Daten in DynamoDB hinzu

Lassen Sie uns jeden dieser Schritte im Detail besprechen.

Beispiel

Wir werden das folgende Beispiel erarbeiten, das die grundlegende Interaktion zwischen DynamoDB und AWS Lambda zeigt. Dieses Beispiel hilft Ihnen, die folgenden Vorgänge zu verstehen:

  • Erstellen einer Tabelle mit dem Namen customer in der Dynamodb-Tabelle und Eingeben von Daten in diese Tabelle.

  • Auslösen der AWS Lambda-Funktion nach Eingabe der Daten und Senden von E-Mails über den Amazon SES-Dienst.

Das grundlegende Blockdiagramm, das den Ablauf des Beispiels erklärt, ist wie folgt:

Erstellen Sie eine Tabelle in DynamoDB mit dem Primärschlüssel

Melden Sie sich bei der AWS-Konsole an. Gehen Sie zu AWS Services und wählen Sie DynamoDB wie unten gezeigt aus. Wählen Sie DynamoDB.

DynamoDB zeigt die Optionen wie unten gezeigt -

Klicken Sie nun auf Create tableum die Tabelle wie gezeigt zu erstellen. Wir haben die Tabelle als benanntcustomer mit Primärschlüssel für diese Tabelle als cust_id. Klicke aufCreate Schaltfläche, um die Tabelle zu dynamodb hinzuzufügen.

Die erstellte Tabelle ist wie folgt:

Wir können der wie folgt erstellten Tabelle Elemente hinzufügen:

Klicken Items und klicken Sie auf Create item Taste wie abgebildet -

Erstellen einer Rolle mit Berechtigungen zum Arbeiten mit DynamoDB und AWS Lambda

Um eine Rolle zu erstellen, gehen Sie zu AWS-Services und klicken Sie auf IAM.

Erstellen wir eine Richtlinie, die nur für die zuvor erstellte DynamoDB-Tabelle verwendet wird.

Wählen Sie nun a Service. Beachten Sie, dass der von uns ausgewählte Service istDynamoDB. ZumActions wir haben alle genommen DynamodbAktionen dh Zugriff auf Liste, Lesen und Schreiben. Zumresourceswerden wir die Aktionen des Tabellenressourcentyps auswählen. Wenn Sie darauf klicken, sehen Sie einen Bildschirm wie folgt:

Wählen Sie nun table und Add ARNdazu wie gezeigt. Wir werden bekommenARN Details aus customer table erstellt wie unten gezeigt -

Eingeben arn Details hier -

Klicken AddSchaltfläche, um die Änderungen zu speichern. Einmal getanClick on Review policy. Geben Sie den Namen der Richtlinie, Beschreibung usw. wie unten gezeigt ein -

Klicke auf create policyum es zu speichern. Fügen Sie die Richtlinie der zu erstellenden Rolle hinzu. WählenRole von links und geben Sie die Details ein.

Beachten Sie, dass die hinzugefügten Richtlinien sind newpolicyfordynamdb, awslambdafullaccess, cloudwatchfullaccess und amazonsesfullaccess. Fügen Sie die Rolle hinzu und verwenden Sie sie beim Erstellen der AWS Lambda-Funktion.

Funktion in AWS Lambda erstellen

Daher haben wir die aufgerufene Lambda-Funktion erstellt newlambdafordynamodb wie gezeigt.

Fügen wir nun dem erstellten AWS Lambda einen DynamodDB-Trigger hinzu. Die Laufzeit, die wir verwenden werden, ist Node.js.

Die folgenden Details finden Sie im Dynamodb-Trigger, die für AWS Lambda konfiguriert werden sollen:

Klicken Sie jetzt einfach auf Add um den Trigger zu AWS Lambda hinzuzufügen.

AWS Lambda-Trigger zum Senden von E-Mails

AWS Lambda wird ausgelöst, wenn Daten in AWS Lambda eingefügt werden. In den Ereignisparameter werden die Dynamodb-Daten eingefügt. Dadurch werden die Daten der Veranstaltung gelesen und eine E-Mail gesendet.

Eine E-Mail senden

Um eine E-Mail zu senden, müssen Sie die folgenden Schritte ausführen:

Schritt 1

Gehen Sie zum AWS-Service und wählen Sie SES (einfacher E-Mail-Service). Überprüfen Sie die E-Mail, an die wir eine E-Mail senden müssen, wie gezeigt.

Schritt 2

Drück den Knopf Verify a New Email Address um die E-Mail-Adresse hinzuzufügen.

Schritt 3

Geben Sie eine E-Mail-Adresse ein, um dies zu überprüfen. Die E-Mail-Adresse erhält und aktiviert Aktivierungs-E-Mails von Amazon, auf die geklickt werden muss. Nach Abschluss der Aktivierung wird die E-Mail-ID überprüft und kann mit AWS-Diensten verwendet werden.

Schritt 4

Der AWS Lambda-Code, der Daten vom Ereignis liest und E-Mails sendet, ist unten angegeben:

var aws = require('aws-sdk');
var ses = new aws.SES({
   region: 'us-east-1'
});
exports.handler = function(event, context, callback) {
   console.log(event);
   let tabledetails = JSON.parse(JSON.stringify(event.Records[0].dynamodb));
   console.log(tabledetails.NewImage.address.S);
   let customerid = tabledetails.NewImage.cust_id.S;
   let name = tabledetails.NewImage.name.S;
   let address = tabledetails.NewImage.address.S;
	
   var eParams = {
      Destination: {
         ToAddresses: ["[email protected]"]
      },
      Message: {
         Body: {
            Text: {
               Data: "The data added is as follows:\n CustomerId:"+customerid+"\n Name:"+name+"\nAddress:"+address
            }
         },
         Subject: {
            Data: "Data Inserted in Dynamodb table customer"
         }
      },
      Source: "[email protected]"
   };
   console.log('===SENDING EMAIL===');
   var email = ses.sendEmail(eParams, function(err, data) {
      if (err) console.log(err);
      else {
         console.log("===EMAIL SENT===");
         console.log("EMAIL CODE END");
         console.log('EMAIL: ', email);
         context.succeed(event);
         callback(null, "email is send");
      }
   });
}

Speichern Sie nun die Lambda-Funktion und die Daten in der DynamoDB-Tabelle.

Daten in DynamoDB hinzufügen

Verwenden Sie die folgende Sequenz, um Daten in DynamoDB hinzuzufügen.

Schritt 1

Geh zum Tisch customer erstellt in Dynamodb.

Schritt 2

Klicken Create item.

Schritt 3

Klicken Save Klicken Sie auf die Schaltfläche und überprüfen Sie die in AWS Lambda angegebene E-Mail-ID, um festzustellen, ob die E-Mail von AWS Lambda gesendet wurde.