Jak skonfigurować funkcję lambda do współpracy z dwoma wyzwalaczy

0

Pytanie

Chcę, aby jedna sonda rozpoczęła się dopiero wtedy, gdy jakiś plik został załadowany na dwa różne prefiksu S3.

Przykład:

Mam plik A i plik B, i mam dwa różne prefiksu dla każdego pliku.

Muszę wykonać pewne agregacji z plikami A i B.

Do tego będę używać Лямбду, która umieszcza wiadomość w SNS, gdy te pliki zostaną pobrane.

Chciałbym skonfigurować tę лямбду do uruchomienia, gdy ta sonda otrzyma powiadomienia o dwóch wydarzeniach.

W ten sposób, moja funkcja lambda może się rozpocząć tylko wtedy, gdy te dwa pliki będą dostępne na S3 do obróbki.

Jak najlepiej ustawić te wyzwalacze do współpracy?

1

Najlepsza odpowiedź

1

TLDR; Zamiast wywoływać powiadomienia o "tworzeniu pliku" ręcznie "publikacji lambda", powiadomienia o zdarzeniach S3 automatycznie powodują swoją "traktowanie lambda" podczas tworzenia pliku docelowego. Lambda kod działa do końca, gdy istnieją oba pliki.

dokumenty: Amazon S3 może wysyłać wydarzenie w funkcję lambda podczas tworzenia lub usuwania obiektu.

(1) Stwórz powiadomienia o zdarzeniach S3: Dodaj dwa powiadomienia o zdarzeniach w kosza. Jeden powoduje produkcję лямбду, gdy FileA jest tworzony na S3. Inną przyczyną, gdy FileBjest tworzony. Możesz ustawić filtry, aby twój lambda otrzymywał powiadomienia tylko o pewnych działaniach S3 i szablonów plików.

(2) Obróbka lambda kod sprawdza, czy istnieje inny plik. Wydarzenie S3 przekazana лямбде, zawiera informacje o zdarzeniu uruchomienia (np. ObjectCreated) i obiekt (na przykład, nazwa klucza, wersja, kosz itp.) za pomocą pakietu SDK AWS, Aby sprawdzić, czy istnieje inny plik w S3.

Jeśli oba pliki istnieją wywołaj procedurę klejenia, w przeciwnym razie zakończ pracę.

50% czasu, w ciągu którego lambda kod obsługi zakończy się wcześniej (ponieważ jest tylko 1 plik). W innych przypadkach sonda będzie przejść całą drogę do procedury klejenia.

(Uwaga: to będzie działać tylko wtedy, gdy można uzyskać jedną nazwę pliku z innego, że nie wiadomo z OP lub komentarzy.)

2021-11-22 14:54:37

W innych językach

Ta strona jest w innych językach

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