Verwenden der Lambda-Funktion mit benutzerdefinierten Benutzeranwendungen

Wir können die AWS-Lambda-Funktion verwenden, um die von der Benutzeranwendung generierten Ereignisse auf die folgenden zwei Arten zu verarbeiten:

  • Verwenden der AWS-Konsole
  • Verwenden der AWS CLI

Verwenden der AWS-Konsole

Über die AWS-Konsole arbeiten wir mit Ereignissen und AWS Lambda. Wechseln Sie zu diesem Zweck zur AWS-Konsole und erstellen Sie eine Lambda-Funktion.

Als nächstes fügen wir den Code für AWS Lambda hinzu -

exports.handler = (event, context, callback) => {
   // TODO implement
   console.log("Hello => "+ event.name);
   console.log("Address =>"+ event.addr);
   callback(null, 'Hello '+event.name +" and address is "+ event.addr);
};

Beachten Sie, dass im obigen Code Name und Adresse mithilfe des Ereignisses gedruckt werden.

Die Details zum Ereignis werden anhand des Testereignisses angegeben, das wie folgt erstellt wurde:

Speichern Sie nun das Ereignis und testen Sie es.

Die entsprechende Protokollausgabe ist wie hier gezeigt -

Verwenden der AWS CLI

Wir können die obige Funktion mit AWS CLI wie folgt aufrufen:

aws lambda invoke --function-name "lambdauserevent" --log-type Tail --
payload file://C:\clioutput\input.txt C:\clioutput\outputfile.txt

Die Ereignisdetails werden an die Nutzlast übergeben und die Ausgabe wird unter gespeichert C:\clioutput\outputfile.txt. wie folgt -

input.txt

{"name":"Roy Singh", "addr":"Mumbai"}

Beim Aufrufen des Lambda über die AWS-CLI sehen Sie folgende Ausgabe:

Wenn Sie AWS Lambda für einen anderen AWS-Service testen möchten, können Sie dies auch mithilfe des Testereignisses in der AWS-Konsole und in der AWS-CLI tun. Ein Beispielereignis für den SNS-Dienst wird unten gezeigt -

{
   "Records": [{
      "EventVersion": "1.0",
      "EventSubscriptionArn": "arnid",
      "EventSource": "aws:sns",
      "Sns": {
         "SignatureVersion": "1",
         "Timestamp": "1970-01-01T00:00:00.000Z",
         "Signature": "EXAMPLE",
         "SigningCertUrl": "EXAMPLE",
         "MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e",
         "Message": "Hello from SNS!",
         "MessageAttributes": {
            "Test": {
               "Type": "String",
               "Value": "TestString"
            },
            "TestBinary": {
               "Type": "Binary",
               "Value": "TestBinary"
            }
         },
         "Type": "Notification",
         "UnsubscribeUrl": "EXAMPLE",
         "TopicArn": "topicarn",
         "Subject": "TestInvoke"
      }
   }]
}

Fügen wir das oben gezeigte Beispielereignis hinzu und testen Sie es wie gezeigt -

In AWS Lambda druckt der Code die SNS-Nachricht wie im folgenden Beispiel gezeigt -

exports.handler = (event, context, callback) => {
   // TODO implement
   console.log(event.Records[0].Sns.Message);
   callback(null, event.Records[0].Sns.Message);};

Rufen wir dasselbe mit AWS CLI auf. Speichern Sie das Ereignis in einer Datei und verwenden Sie es für die Nutzdaten mit dem angezeigten Befehl -

aws lambda invoke --function-name "lambdauserevent" --log-type Tail --
payload file://C:\clioutput\sns.txt C:\clioutput\snsoutput.txt