Lambda: Ассинхронно, DLQ, EventBridge, S3 Events Flashcards

1
Q

Какие сервисы вызывают Лямбду ассинхронно?

A
  • S3
  • SNS
  • CloudWatch Events (EventBridge)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Что такое вызывать ассинхронно? Как это реализовано в Лямбде?

A

Это значит, что payload попадает во внутреннюю очередь (event queue).
И Лямбда функция читает его из очереди.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Какие фичи реализованы во внутренней Лямбда очереди, как и в SQS?

A

Как и у обычной SQS очереди, для внутренней Lambda-очереди предусмотрены механизмы “retry” и “dead letter queue”.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Как происходит retry во внутренней Лямбда очереди? Какие там тайминги? Сколько попыток?

A

3 retry attempts

Если при чтении Event’а из внутренней Lambda-очереди произошла ошибка, то
- Через 1 минуту произойдёт вторая попытка
- Ещё через 2 минуты произойдёт третья попытка

В настройках можно выбрать только от 0 до 3-ёх попыток.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Если 3 попытки (3 retry attempts) НЕ увенчались успехом, то
дальше …, которая будет создана …
Можно выбрать … или …

A

мы можем организовать DQL
мёртвую очередь (в отличие от сокрытой внутренней) придётся создать самостоятельно.
В качестве DQL можно выбрать SQS или SNS

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Какое есть требование к Лямбда функции, вызываемой асинхронно?

A

Лямбда функция должна быть идемпотемптна
В случае повторных попыток обработки Event’а, Лямбда функция будет обрабатывать ОДИН event НЕСКОЛЬКО раз.
Это может вызвать проблемы, если Лямбда НЕ идемпотемптна.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Причины использовать Лямбду ассинхронно?

A
  1. Некоторые сервисы по-другому НЕ умеют (S3, SNS, CloudWatch Events)
  2. Возможность ускорить обработку данных (при условии, что НЕ нужно ждать ответа)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

В чём особенность ассинхронного вызова лямбда функции с точки зрения response Status’а?

A

Если Лямбда функцию удалось ассинхронно вызвать,
то response-code сразу будет 200.

Даже если в ходе выполнения Лямбда функции произошла ошибка.

Ведь при ассинхронно вызове наша цель - просто вызвать функцию.
А НЕ ждать её выполнения.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Что такое Invocation ID? Как ещё он называется?

A

У каждого Event’а есть атрибут Request ID (он же Invoсation ID), по которому можно идентифицировать вызов Лямбда функции.

Несколько попыток обработать один и тот же Event будут иметь одинаковый Request ID (он же Invoсation ID).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Как можно настроить запуск Лямбды по расписанию?

A

Через EventBridge Rule, типа Schedulled-Rate/CRON Jobs

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Что такое EventBridge Rule? Например?
Что такое EventBridge Destination / Target?

A

EventBridge Rule - это поведение, реакция, например отправка сообщения в SNS или запуск Lambda функции.
Каждый Rule имеет Destination: SNS, Lambda, ещё пара десятков.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

На какие 2 типа разделяются все EventBridge Rule’ы?

A
  • Scheduled-Rate/Cron Jobs - каждый интервал времени
    (например, в пятницу в 9:00 или каждые 2 часа)
  • Event Pattern (State Changes) - в случае обнаружения определённого Event’а (например, “IAM Root User Sign In” event)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Чтобы EventBridge мог иметь в качестве Target’а Лямбда функцию, то …, в которой будет указаны атрибуты и значения …

A

К Лямбде должна быть прикреплена IAM Based Policy

”Resource”: “arn.lambda-foo”
будет разрешать операцию “InvokeFunction”
сервису EventBridge (”Principle”: “events.amazonaws.com”, “ArnLike”: “arn.events-rule-bar”).

Resource: “arn.lambda-foo”
Action: “Lambda:InvokeFunction” / “SNS:Publish”
Principle: Service “S3.amazonaws.com”
ConditionLike: ArnLike “arn:aws:s3:::MyBucket”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Что такое S3 event - какие примеры?
Что может быть destination’ом для S3 event’а?

A
  • S3:ObjectCreated
  • S3:ObjectRemoved
  • S3:ObjectRestore
  • S3:Replication
  • Lambda
  • SQS
  • SNS
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Какой тайминг доставки S3 event’ов?

A

S3 Event Notifications обычно доставляются за секунды.
Но иногда отправка S3 Event Notifications может занять около минуты.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Когда может произойти потеря S3 event’а?
Как от неё застраховаться?

A

Если ДВЕ write-операции записи выполняются с одним S3 объектом одновременно,
то есть шанс отправки ТОЛЬКО ОДНОГО S3 Event’а.

Чтобы избежать этого и дать 100% гарантии отправки S3 Event’а для каждой write-операции, нужно включить версионирование.

17
Q

Какова единица измерения в EventBridge?

A

Bus