İki tetikleyiciyle birlikte çalışmak için bir lambda işlevi nasıl kurulur

0

Soru

Bir dosyanın iki farklı S3 önekine yüklendiğinde bir lambda'ya ihtiyacım var.

Örnek:

A ve B dosyam var ve her dosya için iki farklı önekimim var.

A ve B dosyalarıyla bazı toplamalar yapmam gerekiyor.

Bunu yapmak için, bu dosyalar yüklendiğinde sns'ye bir mesaj koyacak bir Lambda kullanacağım.

Bu lambda bu iki olay bildirimini aldığında bu lambda'nın başlatılmasını istiyorum.

Bu yüzden lambda'm, bu iki dosya işlenmek üzere S3'te mevcut olduğunda başlayabilir.

Bu tetikleyiciyi birlikte çalışması için kurmanın en iyi yolu nedir?

1

En iyi cevabı

1

TLDR; "Dosya oluşturuldu" bildirimlerini bir "deftere nakil lambda'sında" el ile yükseltmek yerine, S3 olay bildirimlerinin bir hedef dosya oluşturulduğunda "işleme lambda'sını" otomatik olarak çağırmasını sağlayın. Her iki dosya da mevcut olduğunda lambda tamamlanana kadar çalışır.

dokümanlar: Amazon S3, bir nesne oluşturulduğunda veya silindiğinde bir Lambda işlevine olay gönderebilir.

(1) S3 etkinlik bildirimleri oluşturun: Kovanıza iki etkinlik bildirimi ekleyin. Biri işlem lambda'sını çağırdığında FileA s3 üzerinde oluşturulur. Diğeri onu çağırdığında FileB oluşturulur. Filtreleri, lambda'nızın yalnızca belirli S3 eylemleri ve dosya kalıpları hakkında bilgilendirileceği şekilde ayarlayabilirsiniz.

(2) İşleme lambda, diğer dosyanın var olup olmadığını kontrol eder. Lambda'ya iletilen S3 olayı tetikleme olayı hakkında bilgi içerir (örn. ObjectCreated) ve Nesne (örn.anahtar adı, sürüm, kova vb.) S3'te başka bir dosya olup olmadığını kontrol etmek için AWS SDK'yı kullanın.

Her iki dosya da varsa, tutkal yordamını çağırın, aksi halde çıkın.

lambda işleme süresinin %50'si erken çıkacaktır (çünkü yalnızca 1 dosya vardır). Diğer zamanlarda, lambda tutkal rutinine kadar ilerleyecektir.

(Not: Bu, yalnızca op'den veya açıklamalardan net olmayan diğerinden bir dosya adı türetebiliyorsanız çalışır.)

2021-11-22 14:54:37

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................