2016-11-06 17 views
5

Başka bir kişi aşağıdaki sorunu çözdü mü?
I SNS konuS3 olaylar ile doldurulur ve bu konuyla ilgili abone olduğu ve olayların bin bu konuya sokulduğunda, lamda fonksiyonu için eş zamanlı limitini aşan bastırma Lambda fonksiyonu orada .
Eşzamanlı yürütmeler için bir limit artışı talep etmek istemiyorum, ancak konuyla eşzamanlı tüketimi azaltacağım, ancak nasıl yapılacağını öğrenmedim. Teşekkürler. SNS ilgili seçeneklerdenBir konudan tüketim oranı nasıl sınırlanır?

cevap

5

bir çift:

1) SNS Maksimum Alma Hızı

SNS Maximum Receive Rate ayarlayın. Bu, SNS mesajlarını bir aboneye gönderir, ancak işlenmeden önce atılacak çok fazla mesajınız varsa, mükemmel bir seçenek olmayabilir. belgelerden;

Amazon SNS Maksimum ayarlayarak abone bitiş noktasına gönderdiği saniyede maksimum mesaj sayısını ayarlanmış oranı ayarı alabilir. Amazon SNS, bir saat için teslimat bekleyen mesajları tutar. Bir saatten fazla tutulan mesajlar atılır.

yalnızca Maksimum ayar, bir anda olayların binlerce alıyorsanız bir cami olabilir Lambda en default concurrent execution limit '100' arasında hiç Oranı alın.

Kndrk'a göre, bu kısma şu anda yalnızca SNS konusuna ait HTTP/HTTPS aboneleri için kullanılabilir. Bu konuda çalışmak için, expose your lambda function via AWS API Gateway yapabilir ve doğrudan bu lambda işlevinden ziyade SNS konusuna bu son noktaya abone olabilirsiniz. kuyruktan SQS'in

Subscribe an SQS queue to the SNS topic ve işlem mesajlardan yerine, doğrudan SNS konuya

2) yöntem. SQS ReceiveMessage'un tek bir çağrısı, bir seferde sadece 10 mesajla başa çıkabilir, böylece gaz çekmeniz daha kolay olabilir.


Ayrıca S3 Events directly to AWS Lambda yayınlayabilirsiniz dikkati çekiyor.

+0

Hızlı yanıt için teşekkürler. Lambda S3 tarafından tetiklendiğinde çözüm denedim ama aynı sorun oluştu, bu nedenle S3-> sns-> lambda kombinasyonunu denemeye karar verdim. İlk seçeneğinizi deneyeceğim, bu benim için uygun olabilir. ** P.S. ** S3'ten olayları hemen işlemek istiyorum çünkü çoğu durumda yük çok yüksek değil, fakat doğru anlaşılsaydı, lambda SQS'den gelen olaylar tarafından tetiklenemez. SQS – nikolayandr

+0

'dan tüketim için lambda işlevinin yürütülmesinin programlanmasının tek yolu budur - SQS için temel olarak SQS RecieveMessage'ı lambda'dan belirli bir tetikleyiciye takmak yerine bir programdan yoklayabilirsiniz. Yorumunuzdan SNS Maksimum Alım Oranının kullanım durumunuza uygun olacağını söyleyebiliriz. Umarım sizin için çalışır! –

+1

Ne yazık ki bu sadece HTTP (ler) uç noktaları için geçerlidir. Lambda aboneleri hiç boğulmuyor. – knrdk

İlgili konular