Lambda: Общее, Pricing, Синхронно, ALB Flashcards
Serverless сервисы AWS - …, например …
Сервисы, в которых мы НЕ настраиваем capacity сервера, авто-масштабируемые
- Lambda
- DynamoDB
- Cognito
- API Gateway
- S3
- SNS, SQS
- Kinesis Data Firehose
- Aurora Serverless
- Step Function
- Fargate
Максимум … и … можно выделить одной Lambda функции для выполнения.
10 GB RAM, 15 минут
Какие ещё вычислительные ресурсы можно указать Лямбде, кроме RAM? Как?
Соответствие CPU, RAM, Network у Lambda функции
Если мы даём больше RAM нашей Lambda функции, то она также увеличит себе CPU и Network, чтобы НЕ было перекосов.
Какие языки программирования можно использовать для Лямбда?
Какие нельзя?
Что, если нужно использовать другой язык?
NodeJS, Python, PowerShell, C#, Ruby, Java, Go
PHP
Можно использовать Custom Runtime API для других языков
Как можно запустить код, расположенный в Docker Container’е в Лямбда? Что для этого необходимо?
Lambda Container Image
Для этого контейнер обязательно должен удовлетворять Lambda Runtime API.
Иначе такой код можно запустить только в ECS / Fargate.
Какие есть способы запускать Лямбда функцию?
Синхронно, ассинхронно, Event Source Mapping
Pricing. За что мы платим в Лямбда сервисе?
За количество вызовов функции
За “продолжительность” выполнения функции
Какова цена за количество вызовов Лямбды?
Первый 1_000_000 вызовов бесплатно
Дальше по 0.20$ за последующий миллион вызовов
Какова цена за “продолжительность” Лямбды?
В чём измеряется “продолжительность”? Как это понимать?
Первые 400_000 GB/sec бесплатно
Дальше по 1$ за каждые 600_000 GB/sec
Если функция потребляет 1 GB RAM, то бесплатно она может выполняться 400_000 секунд.
Что такое синхронное выполнение Лямбда функции?
Какие сервисы вызывают Лямбду синхронно?
Это значит после её вызова стоять и ждать результат её выполнения.
- CLI, SDK
- Application LB
- API Gateway
- CloudFront
- S3 Batch
- AWS Cognito
- AWS Step Functions
- Kinesis Data Firehose
Какие есть способы привязать Лярду к HTTP Endpoint?
Что их объединяет?
- Application LB
- API Gateway
- Lambda URL
все 3 вызывают синхронно
Что вообще можно указать в Target Group’е LB?
- Lambda
- Autoscaling Group (EC2, ECS)
Как разрешить Load Balancer’у вызывать Лямбда функцию?
Lambda имеет IAM Resource Based Policies, в которых нужно указать “Allow” для ARN нашего Load Balancer’а.
Как HTTP запрос превращается во входной параметр (Object) Лямбды?
Что такое request context?
Есть JSON data-schema, в которой выделены поля для всей информации о запросе.
Программная Java-функция Лямбды будет иметь входной параметр указанного типа.
Заголовки, тело запроса, метод запроса и прочее - включая requestContext - будет в этом JSON’е.
Request Context - это информация о том, откуда пришёл запрос (об Application Load Balancer’е).
Как возвращаемый результат (Object) Лямбды превращается в HTTP ответ?
Что такое isBase64Encoded?
Eсть JSON data-schema, в которой выделены поля под всю информацию ответа.
Результат выполнения функции просто нужно упаковать в объект с соответствующими полями.
isBase64Encoded - это булевское поле, которое говорит, закодировано ли тело запроса/ответа.