AWS Konsolunu Kullanarak Oluşturma ve Dağıtma

Lambda işlevi oluşturabilir ve aynısını AWS konsolunda test edebiliriz. Bu bölüm bunu ayrıntılı olarak tartışmaktadır. Bu amaçla, burada verilen adımları izlemeniz ve verilen ilgili ekran görüntülerini gözlemlemeniz gerekecektir -

Aşama 1

AWS Konsolunda oturum açın https://aws.amazon.com/console/. Şimdi, AWS hizmetlerinin görüntülendiği ekrana yönlendirileceksiniz.

Adım 2

Şimdi tıklayın Lambdayukarıda vurgulandığı gibi hizmet. Bu, aşağıda gösterildiği gibi işlev oluşturmak için yeniden yönlendirecektir -

Aşama 3

Şimdi tıklayın Create functionve işlevin ayrıntılarını girin. Daha sonra aşağıda gösterildiği gibi bir ekran görebilirsiniz -

4. adım

Seçtiğiniz dili seçerek kodunuzu yazabilirsiniz. Seçilen seçenek kodu satır içinde düzenle ise kod düzenleyicide yazılmalıdır. Mevcut diğer seçenekler aşağıdaki gibidir -

Adım 5

Tamamlandığında, aşağıda gösterildiği gibi sağ üst köşede düğmenin verildiği değişiklikleri kaydetmeniz gerekir -

6. Adım

Şimdi tıklayın Testbuton. Bu, aşağıda gösterildiği gibi Lambda işlevinin yürütülmesine ilişkin tüm ayrıntıları verir -

7. Adım

İçin kod index.js aşağıdaki gibidir -

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

Bu arayacak Callback functionve sonuç hata veya başarı olabilir. Başarı durumunda bir göreceksinizLambda testİleti; hata varsa, boş geçecektir.

8. Adım

Role Lambda işlevi ayrıntıları, yapılandırmanın bir parçasıdır ve aşağıda gösterildiği gibi görüntülenir -

9. Adım

Artık, gerekirse rolü güncelleyebilir ve Lambda işlevini kaydedebilirsiniz. Ardından, lambda işlevi için bellek ve zaman aşımı ayrıntıları aşağıda gösterildiği gibi görüntülenir -

10. adım

Şimdi, olay gerçekleştiğinde çalışması için Lambda işlevine tetikleyici eklememiz gerekiyor. Tetikleme ayrıntıları, aşağıda gösterildiği gibi AWS Lambda işlevi ekranının başlangıcında görüntülenir -

Buradan, Lambda işlevinizin tetiklenmesini istediğiniz tetikleyiciyi seçebilirsiniz. Tetikleyiciyi seçtiğinizde, tetikleyici için yapılandırma ayrıntılarının eklenmesi gerekir.

Örneğin, S3'teki tetikleyici için eklenecek yapılandırma ayrıntıları aşağıdaki gibidir -

11. adım

Şimdi, tetikleyicinin açılmasını istediğiniz kovayı seçin. Olay türü aşağıdaki ayrıntılara sahiptir -

Adım 1/2

Tetikleyici için, ayrıca önek türü dosyalarından veya dosya modelinden de bahsedebilirsiniz, Lambda'nın tetiklenmesi gerekir. Ayrıntılar gösterildiği gibidir -

Adım 13

Şimdi, tetikleyici için gerekli ayrıntıları doldurun ve Add Tetikleyicinin eklenmesi için Lambda işlevini kaydedin. İşlev kaydedildiğinde ayrıntılar dağıtılır ve bundan böyle dosyalar S3 klasörüne her eklendiğinde Lambda tetiklenir.

AWS Lambda'ya eklenen S3 tetikleyicisini gösteren aşağıdaki ekran görüntüsünü inceleyin -

14. adım

Şimdi, Lambda işlevini test etmek için S3 örnek olayını kullanalım. Aynı kod burada gösterilmektedir -

Amazon S3 Örnek Olay Koydu

{
   "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"
   }]
}

S3 koyma olayından yüklenen dosyanın ayrıntılarını almak için aşağıdaki komutu kullanmanız gerekecek -

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

Paket adını almak için aşağıdaki komutu kullanmanız gerekecek -

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

EventName'i almak için aşağıdaki komutu kullanmanız gerekecek -

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

Adım 15

Şimdi, S3 ayrıntılarını aşağıda gösterildiği gibi yazdırmak için AWS Lambda kodunu güncelleyelim -

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

16. adım

Değişiklikleri kaydedin. TıklayınTest ve S3 örnek olayını girin -

17. Adım

Şimdi tıklayın Test ve çıktıyı gösterildiği gibi görebilirsiniz -

Adım 18

S3 AWS hizmetini kullanarak tetikleyiciyi S3 üzerinde test etmek için S3 klasörüne bir dosya yükleyin: test bucket trigger. İzinler için S3 ve SES politikasını (posta göndermek için) almak için Lambda ile kullanılan rolü güncelleyin. Bu, tetikleyicinin çalıştığını görmek için posta göndermek için AWS Lambda kodunu günceller -

Güncellenen AWS Lambda kodu gösterildiği gibidir -

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");
         }
   });
};

İlgili ekran görüntüsü burada gösterildiği gibidir -

Adım 19

Şimdi, dosyayı yükleyin ve AWS Lambda kodunda sağlanan posta kimliğini kontrol edin -