Tworzenie i wdrażanie za pomocą konsoli AWS

Możemy stworzyć funkcję Lambda i przetestować ją w konsoli AWS. W tym rozdziale omówiono to szczegółowo. W tym celu będziesz musiał postępować zgodnie z instrukcjami podanymi tutaj i obserwować odpowiednie zrzuty ekranu -

Krok 1

Zaloguj się do konsoli AWS https://aws.amazon.com/console/. Teraz zostaniesz przekierowany do ekranu, na którym wyświetlane są usługi AWS.

Krok 2

Teraz kliknij Lambdausługi, jak podkreślono powyżej. Spowoduje to przekierowanie do tworzenia funkcji, jak pokazano poniżej -

Krok 3

Teraz kliknij Create functioni wprowadź szczegóły funkcji. Następnie możesz zobaczyć ekran, jak pokazano poniżej -

Krok 4

Możesz napisać swój kod, wybierając odpowiedni język. Kod musi być napisany w edytorze, jeśli wybrana opcja to edycja kodu inline. Inne dostępne opcje są następujące -

Krok 5

Po zakończeniu musisz zapisać zmiany, dla których przycisk znajduje się w prawym górnym rogu, jak pokazano poniżej -

Krok 6

Teraz kliknij Testprzycisk. Daje to wszystkie szczegóły wykonania funkcji Lambda, jak pokazano poniżej -

Krok 7

Kod dla index.js wygląda następująco -

exports.handler = (event, context, callback) => {
   // TODO implement
   callback(null, 'Lambda test');
};

To wywoła Callback functiona rezultatem może być błąd lub sukces. Po sukcesie zobaczysz plikLambda testwiadomość; jeśli błąd przejdzie null.

Krok 8

Plik Role szczegóły funkcji Lambda są częścią konfiguracji i są wyświetlane, jak pokazano poniżej -

Krok 9

Teraz możesz zaktualizować rolę, jeśli to konieczne, i zapisać funkcję Lambda. Następnie szczegóły pamięci i limitu czasu dla funkcji lambda są wyświetlane, jak pokazano poniżej -

Krok 10

Teraz musimy dodać wyzwalacz do funkcji Lambda, aby był wykonywany po wystąpieniu zdarzenia. Szczegóły wyzwalacza są wyświetlane na początku ekranu funkcji AWS Lambda, jak pokazano poniżej -

W tym miejscu możesz wybrać wyzwalacz, który ma uruchamiać funkcję Lambda. Po wybraniu wyzwalacza należy dodać szczegóły konfiguracji wyzwalacza.

Na przykład dla wyzwalacza na S3 szczegóły konfiguracji do dodania są następujące -

Krok 11

Teraz wybierz zasobnik, na którym chcesz włączyć wyzwalacz. Typ zdarzenia zawiera następujące szczegóły -

Krok 12

W przypadku wyzwalacza można również wspomnieć o plikach typu prefiks lub wzorcu pliku, Lambda musi być wyzwalaczem. Szczegóły są jak pokazano -

Krok 13

Teraz wypełnij wymagane szczegóły wyzwalacza i kliknij Add Zapisz funkcję Lambda, aby wyzwalacz został dodany. Zapisanie funkcji powoduje wdrożenie szczegółów i od teraz za każdym razem, gdy pliki są dodawane do wiadra S3, Lambda zostanie wyzwolona.

Zwróć uwagę na poniższy zrzut ekranu, który pokazuje wyzwalacz S3 dodany do AWS Lambda -

Krok 14

Teraz użyjmy przykładowego zdarzenia S3 do przetestowania funkcji Lambda. Kod tego samego jest pokazany tutaj -

Amazon S3 Put Sample Event

{
   "Records": [{
      "eventVersion": "2.0",
      "eventTime": "1970-01-01T00:00:00.000Z",
      "requestParameters": {
         "ExampleIPAddress": "127.0.0.1"
      },
      "s3": {
         "configurationId": "testConfigRule",
         "object": {
            "eTag": "0123456789abcdef0123456789abcdef",
            "sequencer": "0A1B2C3D4E5F678901",
            "key": "HappyFace.jpg",
            "size": 1024
         },
         "bucket": { 
            "arn": bucketarn,
            "name": "Examplebucket",
            "ownerIdentity": {
               "principalId": "Example"
            }
         },
         "s3SchemaVersion": "1.0"
      },
      "responseElements": { 
         "x-amz-id-2": "Example123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH",
         "x-amz-request-id": "Example123456789"
      },
      "awsRegion": "us-east-1",
      "eventName": "ObjectCreated:Put",
      "userIdentity": {
         "principalId": "Example"
      },
      "eventSource": "aws:s3"
   }]
}

Będziesz musiał użyć następującego polecenia, aby uzyskać szczegółowe informacje o pliku przesłanym ze zdarzenia S3 put -

event.Records[0].s3.object.key     //will display the name of the file

Będziesz musiał użyć następującego polecenia, aby uzyskać nazwę zasobnika -

event.Records[0].s3.bucket.name    //will give the name of the bucket.

Będziesz musiał użyć następującego polecenia, aby uzyskać nazwę zdarzenia -

event.Records[0].eventName        // will display the event name

Krok 15

Teraz zaktualizujmy kod AWS Lambda, aby wydrukować szczegóły S3, jak pokazano poniżej -

exports.lambdahandler = (event, context, callback) => {
   callback(null, "Bucket name: "+event.Records[0].s3.bucket.name+"  
   File name:"+event.Records[0].s3.object.key );
};

Krok 16

Zapisz zmiany. KliknijTest i wprowadź zdarzenie próbki S3 -

Krok 17

Teraz kliknij Test i możesz zobaczyć dane wyjściowe, jak pokazano -

Krok 18

Aby przetestować wyzwalacz na S3 przy użyciu usługi S3 AWS, prześlij plik w zasobniku S3: test bucket trigger. Zaktualizuj rolę używaną z Lambda, aby przyjąć zasady S3 i SES (do wysyłania poczty) dla uprawnień. To zaktualizuje kod AWS Lambda, aby wysyłać pocztę, aby zobaczyć, jak działa wyzwalacz -

Zaktualizowany kod AWS Lambda jest taki, jak pokazano -

var aws = require('aws-sdk');
var ses = new aws.SES({
   region: 'us-east-1'
});
exports.lambdahandler = function(event, context, callback) {
   var eParams = {
      Destination: {
         ToAddresses: ["[email protected]"]
      },
      Message: {
         Body: {
            Text: {
               Data: "Bucket name: "+event.Records[0].s3.bucket.name+"  File name:"+event.Records[0].s3.object.key
            }
         },
         Subject: {
            Data: "S3 and AWS Lambda"
         }
      },
      Example: "[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");
         }
   });
};

Odpowiedni zrzut ekranu jest taki, jak pokazano tutaj -

Krok 19

Teraz prześlij plik i sprawdź identyfikator poczty podany w kodzie AWS Lambda -