Wątek wykonywania AWS Lambda@Edge/Cloudfront

0

Pytanie

Ja рефакторингую projekt strony firmy, w której dodają dwie różne funkcje Lambda@Edge, które są uruchamiane CloudFront.

enter image description here

W zasadzie, strumień następujący:

  1. Gdy użytkownicy powodują plik S3 z aplikacji sieci web - > Wydarzenie CloutFront fire, która spowoduje Lambda@Edge.
  2. Istnieją dwie lambda: jedna do zliczania pobrań na użytkownika, a inna w celu ograniczenia dostępu.

Problem w tym, że rozwiązanie to nie działa i nie ma sprawdzanie ilości pobrań.

Jaki jest tok wykonywania Lambda@Edge, podłączonego do tego samego wydarzenia? Myślę o tym, aby umieścić całą logikę w jedną Лямбду, ponieważ obawiam się, że liczenie może nastąpić wcześniej, niż będzie odmowa dostępu. Jednak, biorąc pod uwagę, że lambda@edge nie ma limitu czasu wykonywania

1

Najlepsza odpowiedź

0

Z dokumentacją można zapoznać się tutaj.

enter image description here

Gdy użytkownik zażąda plik, pojawia się monit o przejrzenie. Jeśli plik znajduje się w pamięci podręcznej, należy odpowiedzieć widza. Żądania wysyłania nie. Z tego powodu należy uwierzytelnianie użytkowników na życzenie oglądania.

Gdy pliku nie ma w pamięci podręcznej, pojawia się zapytanie źródła. Dzieje się tak, gdy plik jest pobierany z S3.

U ciebie może być logika w jednym Lamda@Edge, ale można również:

  • Uwierzytelnianie użytkowników na życzenie widza.
  • Подсчитывайте liczba pobrań w zależności od odpowiedzi widza. Wydarzenie odpowiedzi widza będzie zainicjowane niezależnie od tego, czy bufor lub nie, ale nie wtedy, gdy źródło zwraca kod stanu HTTP 400 lub wyższej.
2021-11-23 09:33:08

Dobrze, powiedział. Dziękuję za pomoc. Obecnie Lambda@Edge powoduje zwykłą Лямбду przez punkt końcowy (z powodu ograniczenia dostępu do poziomu lambda) - > następnie sprawdza nagłówek autoryzacji użytkownika i zwraca jakiś stan z powrotem do Lambda@Edge.>
Vartan

W innych językach

Ta strona jest w innych językach

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