Lambda: URL, Limits, Best Practices Flashcards

1
Q

Какие есть способы привязать Лямбду к HTTP endpoint’у?

A

ALB
API Gateway
Lambda URL

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

Что нужно знать про запросы на Lambda URL?

A
  • Поддерживает ipv4, ipv6
  • Запросы можно слать только по публичной сети интернет
  • Запросы нельзя слать приватно через PrivateLink
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Для чего (для каких сущностей) можно создать Lambda URL?

A

Можно для Lambda Alias и $LATEST версию Лямбды.
Нельзя для обычных версий Лямбды.

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

Какие есть настройки Security для Лямбда URL?

A

IAM Resource Based Policy
CORS

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

Как сделать Лямбда URL доступных для всех в интернете?

A

Если в Resource Policy указать
Condition → StringEquals → lambda:FunctionUrlAuthType → AuthType: NONE,
то Lambda будет доступна из интернета ДЛЯ ВСЕХ.

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

Как сделать Лямбда URL доступных для конкретного AWS principle?

A

Если в Resource Policy указать
Condition → StringEquals → lambda:FunctionUrlAuthType → AuthType: AWS_IAM,
то Lambda будет доступна из интернета ДЛЯ ВСЕХ.

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

Какое условие должно быть выполнено, чтобы IAM Principle смог вызвать Лямбда функцию?

A

Ему должна быть разрешена (Allow) операция Lambda:InvokeFuncion

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

Какая есть особенность по наличию Lambda:InvokeFunction операции в плане same-account и cross-account?

A

Principle и Lambda могут находиться в ОДНОМ или в РАЗНЫХ аккаунтах AWS.

Eсли вызов Лямбда функции происходит
- Cross Account, то нужны ОБА
(Resource Based Policy AND Identity Based Policy)
- Same Account, то нужна хотя бы ОДНА
(Resource Based Policy OR Identity Based Policy)

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

Зачем нужен CodeGury в Lambda?

A

CodeGury Profiler для измерения runtime performance Лямбда функции.

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

Как включить CodeGury в Лямбде?

A
  • Можно активировать через AWS Lambda Console.
  • Нужно повесить AmazonCodeGuryProfilerAgentAccess policy к IAM Роли Лямбда функции
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Какие есть Execution Limits?
- RAM
- Execution Time
- Environment Variables
- /tmp папка
- concurrent executions

A
  • Memory RAM: 128 MB - 10 GB (1 MB step; vCPU пропрорционально)
  • Execution time: 900 sec (15 mins)
  • Environment Variables: 4 KB
  • /tmp папка: 512 MB - 10 GB
  • Concurrent executions: 1_000 (можно увеличить по запросу)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Какие есть Deployment Limits?
- ZIP архив
- Layers

A
  • ZIP архив для деплоймента Лямбды: 50 MB
  • Layers: 250 MB, 5 layers
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Какие ключевые слова могут говорить, что это НЕ Лямбда?
- по RAM
- по execution time
- по размеру файла

A
  • “RAM 30 GB”
  • “30 минут execution time”
  • “Файл 3 GB”
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Best practices
Что такое Heavy Duty Work outside of your Handler?
например?

A

Нужно располагать инициализацию тяжёлых ресурсов в контексте, а НЕ в handler’е функции.
- DB connection
- SDK init
- dependencies / datasets pulling

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

Best Practices
Что нужно знать про Environment Variables?

A

Нужно использовать переменные окружения для всего, что может меняться.
- S3 bucket name
- DB connection string

passwords, sensitive значения можно шифровать через KMS

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

Best Practices
Минимизировать размер билда
- ZIP
- /tmp
- S3 EFS
- Layers
Зачем каждый из этого нужен?

A