Lambda: URL, Limits, Best Practices Flashcards
Какие есть способы привязать Лямбду к HTTP endpoint’у?
ALB
API Gateway
Lambda URL
Что нужно знать про запросы на Lambda URL?
- Поддерживает ipv4, ipv6
- Запросы можно слать только по публичной сети интернет
- Запросы нельзя слать приватно через PrivateLink
Для чего (для каких сущностей) можно создать Lambda URL?
Можно для Lambda Alias и $LATEST версию Лямбды.
Нельзя для обычных версий Лямбды.
Какие есть настройки Security для Лямбда URL?
IAM Resource Based Policy
CORS
Как сделать Лямбда URL доступных для всех в интернете?
Если в Resource Policy указать
Condition → StringEquals → lambda:FunctionUrlAuthType → AuthType: NONE,
то Lambda будет доступна из интернета ДЛЯ ВСЕХ.
Как сделать Лямбда URL доступных для конкретного AWS principle?
Если в Resource Policy указать
Condition → StringEquals → lambda:FunctionUrlAuthType → AuthType: AWS_IAM,
то Lambda будет доступна из интернета ДЛЯ ВСЕХ.
Какое условие должно быть выполнено, чтобы IAM Principle смог вызвать Лямбда функцию?
Ему должна быть разрешена (Allow) операция Lambda:InvokeFuncion
Какая есть особенность по наличию Lambda:InvokeFunction операции в плане same-account и cross-account?
Principle и Lambda могут находиться в ОДНОМ или в РАЗНЫХ аккаунтах AWS.
Eсли вызов Лямбда функции происходит
- Cross Account, то нужны ОБА
(Resource Based Policy
AND Identity Based Policy
)
- Same Account, то нужна хотя бы ОДНА
(Resource Based Policy
OR Identity Based Policy
)
Зачем нужен CodeGury в Lambda?
CodeGury Profiler для измерения runtime performance Лямбда функции.
Как включить CodeGury в Лямбде?
- Можно активировать через AWS Lambda Console.
- Нужно повесить AmazonCodeGuryProfilerAgentAccess policy к IAM Роли Лямбда функции
Какие есть Execution Limits?
- RAM
- Execution Time
- Environment Variables
- /tmp папка
- concurrent executions
- 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
(можно увеличить по запросу)
Какие есть Deployment Limits?
- ZIP архив
- Layers
- ZIP архив для деплоймента Лямбды: 50 MB
- Layers:
250 MB
, 5 layers
Какие ключевые слова могут говорить, что это НЕ Лямбда?
- по RAM
- по execution time
- по размеру файла
- “RAM 30 GB”
- “30 минут execution time”
- “Файл 3 GB”
Best practices
Что такое Heavy Duty Work outside of your Handler?
например?
Нужно располагать инициализацию тяжёлых ресурсов в контексте, а НЕ в handler’е функции.
- DB connection
- SDK init
- dependencies / datasets pulling
Best Practices
Что нужно знать про Environment Variables?
Нужно использовать переменные окружения для всего, что может меняться.
- S3 bucket name
- DB connection string
passwords, sensitive значения можно шифровать через KMS