Поток выполнения AWS Lambda@Edge/Cloudfront

0

Вопрос

Я рефакторингую проект сторонней компании, в котором они добавляют две разные функции Lambda@Edge, которые запускаются CloudFront.

enter image description here

В основном, поток следующий:

  1. Когда пользователи вызывают файл S3 из веб-приложения - > Событие CloutFront fire, которое вызовет Lambda@Edge.
  2. Существует две лямбды: одна для подсчета загрузок на пользователя, а другая для ограничения доступа.

Проблема в том, что решение не работает и отсутствует проверка количества загрузок.

Каков рабочий процесс выполнения для Lambda@Edge, подключенного к одному и тому же событию? Я подумываю о том, чтобы поместить всю логику в одну Лямбду, так как боюсь, что подсчет может произойти раньше, чем будет отказано в доступе. Однако, принимая во внимание, что у lambda@edge есть ограничение по времени выполнения

1

Лучший ответ

0

С документацией можно ознакомиться здесь.

enter image description here

Когда пользователь запрашивает файл, возникает запрос на просмотр. Если файл находится в кэше, то следует ответ зрителя. Запроса на отправку нет. По этой причине вы должны аутентифицировать своих пользователей по запросу просмотра.

Когда файла нет в кэше, возникает запрос источника. Это происходит, когда файл загружается с S3.

У вас может быть логика в одном Lamda@Edge, но вы также можете:

  • Проверка подлинности пользователей по запросу зрителя.
  • Подсчитывайте количество загрузок в зависимости от ответа зрителя. Событие ответа зрителя будет инициировано независимо от того, есть ли попадание в кэш или нет, но не тогда, когда источник возвращает код состояния HTTP 400 или выше.
2021-11-23 09:33:08

Хорошо, отметил. Спасибо за помощь. В настоящее время Lambda@Edge вызывает обычную Лямбду через конечную точку (из-за ограничения доступа к уровню лямбда) - > затем проверяется заголовок авторизации пользователя и возвращает некоторое состояние обратно в Lambda@Edge.>
Vartan

На других языках

Эта страница на других языках

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