Lambda İşlevini Amazon SNS ile Kullanma
Amazon SNS, push bildirimi için kullanılan bir hizmettir. Bu bölümde, AWS Lambda ve Amazon SNS'nin çalışmasını aşağıdaki eylemleri nerede gerçekleştirecek bir örnekle açıklayacağız:
SNS Hizmetinde Konu Oluşturun ve AWS Lambda'yı Kullanın CloudWatch'a Konu Ekleyin
Verilen telefon numarasına SNS metin mesajı gönderin.
Gereksinimler
SNS Hizmetinde Konu oluşturmak ve AWS Lambda'yı CloudWatch'a Eklemek için, aşağıda verilen adımları izlememiz gerekmez -
- SNS'de Konu Oluşturun
- IAM'de izin için Rol Oluşturun
- AWS Lambda İşlevi Oluşturun
- Tetikleyiciyi etkinleştirmek için konuya yayınlayın
- CloudWatch hizmetindeki mesaj ayrıntılarını kontrol edin.
Verilen telefon numarasına SNS metin mesajı göndermek için aşağıdakileri yapmamız gerekir -
- Telefonunuza mesaj göndermek için AWS Lambda'ya kod ekleyin.
Misal
Bu örnekte, SNS'de bir konu oluşturacağız. Ayrıntılar, yayınlanacak konuya girildiğinde, AWS Lambda tetiklenir. Konu ayrıntıları CloudWatch'a kaydedilir ve AWS Lambda tarafından telefona bir mesaj gönderilir.
İşte aynı şeyi açıklayan temel bir blok diyagramı -
SNS'de Konu Oluşturun
SNS'de konu oluşturmak için aşağıda verilen adımları izlemeniz gerekecek -
Aşama 1
AWS Console'da oturum açın ve aşağıda gösterildiği gibi Amazon'da SNS hizmetine gidin -
Adım 2
Tıklayın Simple Notification Servis ve Create topic içinde.
Aşama 3
Sonra tıklamalısın Create new topic düğmesi gösterildiği gibi -
4. adım
Giriş Topic name ve Display name ve tıklayın Create topic. Ekranda konu adını aşağıdaki gibi görmelisiniz -
IAM'de İzin için Rol Oluşturun
AWS Lambda ve SNS hizmetiyle çalışacak bir Rol oluşturmak için AWS konsolunda oturum açmamız gerekir. Ardından, Amazon hizmetlerinden IAM'yi seçin ve aşağıda gösterildiği gibi sol taraftan role tıklayın.
SNS, Lambda ve CloudWatch için politikalar eklediğimizi gözlemleyin. Rol adı ekleyin ve rol oluşturma sürecini tamamlamak için Rol oluştur düğmesini tıklayın.
AWS Lambda İşlevi Oluşturun
Bu bölümde, çalışma zamanı olarak nodejs kullanarak AWS Lambda işlevinin nasıl oluşturulacağını anlayalım.
Bu amaçla, AWS konsolunda oturum açın ve AWS hizmetlerinden AWS Lambda'yı seçin. İşlev adını, rol ayrıntılarını vb. Ekleyin ve gösterildiği gibi AWS Lambda işlevini oluşturun.
SNS Tetikleyicisi Ekle
SNS tetikleyicisi eklemek için, gösterildiği gibi SNS yapılandırma ayrıntılarını girin -
Ardından, seçin SNS topic ve Add gösterildiği gibi AWS Lambda işlevinin tetikleyicisi -
Ardından, aşağıda verilen AWS lambda kodunu ekleyin -
exports.handler = function(event, context, callback) {
console.log("AWS lambda and SNS trigger ");
console.log(event);
const sns = event.Records[0].Sns.Message;
console.log(sns)
callback(null, sns);
};
Yukarıdaki kodda, event.Records[0].Sns.Messageeklenen mesaj detaylarını verir. Bunları CloudWatch'ta görmek için konsol günlükleri ekledik. Şimdi, Lambda işlevini gerekli bellek ve zaman ayırma ile kaydedin.
Tetikleyiciyi Etkinleştirmek için Konuya Yayınla
1. Adımda SNS'de zaten konu oluşturduğumuzu hatırlayın. Şimdi bu konuda yayınlayacağız ve AWS Lambda tarafından tetiklenecek olan CloudWatch'daki ayrıntıları göreceğiz -
Konuya Yayınla
Önce Yayınlamak istediğiniz konunun adını seçin. TıklamakPublish to topic düğmesi -
Giriş Subject ve Message ayrıntılar aşağıda gösterildiği gibidir -
Ayrıca seçebilirsiniz JSON gönderilecek mesaj biçimi JSONtarzı. TıklayınPublish the message Ekranın sonundaki düğmesine basın.
CloudWatch Hizmetinde Mesaj Ayrıntılarını Kontrol Edin
AWS konsolunda oturum açın ve CloudWatch hizmetini açın. Sol taraftaki günlüklere tıklayın ve oluşturulan AWS Lambda işlevi için günlükleri seçin. Yukarıda gösterildiği gibi oluşturulan mesajların bulunduğu günlükler için aşağıdaki ekranı bulabilirsiniz -
Telefonunuza Mesaj Göndermek için AWS Lambda'ya Kod Ekleyin
Burada, AWS Lambda'yı kullanarak telefonda mesaj göndermek için SNS Metin mesajlaşma kullanılacaktır. AWS Lambda kodunu aşağıdaki gibi güncellemek için aşağıdaki kodu kullanabilirsiniz:
const aws = require("aws-sdk");
const sns = new aws.SNS({
region:'us-east-1'
});
exports.handler = function(event, context, callback) {
console.log("AWS lambda and SNS trigger ");
console.log(event);
const snsmessage = event.Records[0].Sns.Message;
console.log(snsmessage);
sns.publish({
Message: snsmessage,
PhoneNumber: '+911212121212'
}, function (err, data) {
if (err) {
console.log(err);
callback(err, null);
} else {
console.log(data);
callback(null, data);
}
});
};
Mesaj göndermek için kullanmak üzere AWS SDK ve SNS hizmetini ekledik. SNS'den gelen olaydan gelen mesaj, verilen telefon numarasına kısa mesaj olarak gönderilir.
Örneğin aşağıdaki kodu inceleyin -
sns.publish({
Message: snsmessage,
PhoneNumber: '+911212121212'
}, function (err, data) {
if (err) {
console.log(err);
callback(err, null);
} else {
console.log(data);
callback(null, data);
}
});
Cloudwatch'daki mesajı ve yukarıda verilen telefon numarasını görmek için konuyu şimdi girin.
Tıklayın Publish messagemesajı yayınlamak için. Aşağıdaki gibi verilen telefon numarasında bir mesaj görüyorsunuz -