Lambda: Общее, Pricing, Синхронно, ALB Flashcards

1
Q

Serverless сервисы AWS - …, например …

A

Сервисы, в которых мы НЕ настраиваем capacity сервера, авто-масштабируемые
- Lambda
- DynamoDB
- Cognito
- API Gateway
- S3
- SNS, SQS
- Kinesis Data Firehose
- Aurora Serverless
- Step Function
- Fargate

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

Максимум … и … можно выделить одной Lambda функции для выполнения.

A

10 GB RAM, 15 минут

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

Какие ещё вычислительные ресурсы можно указать Лямбде, кроме RAM? Как?

A

Соответствие CPU, RAM, Network у Lambda функции

Если мы даём больше RAM нашей Lambda функции, то она также увеличит себе CPU и Network, чтобы НЕ было перекосов.

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

Какие языки программирования можно использовать для Лямбда?
Какие нельзя?
Что, если нужно использовать другой язык?

A

NodeJS, Python, PowerShell, C#, Ruby, Java, Go
PHP
Можно использовать Custom Runtime API для других языков

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

Как можно запустить код, расположенный в Docker Container’е в Лямбда? Что для этого необходимо?

A

Lambda Container Image
Для этого контейнер обязательно должен удовлетворять Lambda Runtime API.
Иначе такой код можно запустить только в ECS / Fargate.

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

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

A

Синхронно, ассинхронно, Event Source Mapping

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

Pricing. За что мы платим в Лямбда сервисе?

A

За количество вызовов функции
За “продолжительность” выполнения функции

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

Какова цена за количество вызовов Лямбды?

A

Первый 1_000_000 вызовов бесплатно
Дальше по 0.20$ за последующий миллион вызовов

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

Какова цена за “продолжительность” Лямбды?
В чём измеряется “продолжительность”? Как это понимать?

A

Первые 400_000 GB/sec бесплатно
Дальше по 1$ за каждые 600_000 GB/sec

Если функция потребляет 1 GB RAM, то бесплатно она может выполняться 400_000 секунд.

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

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

A

Это значит после её вызова стоять и ждать результат её выполнения.
- CLI, SDK
- Application LB
- API Gateway
- CloudFront
- S3 Batch
- AWS Cognito
- AWS Step Functions
- Kinesis Data Firehose

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

Какие есть способы привязать Лярду к HTTP Endpoint?
Что их объединяет?

A
  • Application LB
  • API Gateway
  • Lambda URL
    все 3 вызывают синхронно
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Что вообще можно указать в Target Group’е LB?

A
  • Lambda
  • Autoscaling Group (EC2, ECS)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Как разрешить Load Balancer’у вызывать Лямбда функцию?

A

Lambda имеет IAM Resource Based Policies, в которых нужно указать “Allow” для ARN нашего Load Balancer’а.

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

Как HTTP запрос превращается во входной параметр (Object) Лямбды?
Что такое request context?

A

Есть JSON data-schema, в которой выделены поля для всей информации о запросе.
Программная Java-функция Лямбды будет иметь входной параметр указанного типа.
Заголовки, тело запроса, метод запроса и прочее - включая requestContext - будет в этом JSON’е.

Request Context - это информация о том, откуда пришёл запрос (об Application Load Balancer’е).

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

Как возвращаемый результат (Object) Лямбды превращается в HTTP ответ?
Что такое isBase64Encoded?

A

Eсть JSON data-schema, в которой выделены поля под всю информацию ответа.
Результат выполнения функции просто нужно упаковать в объект с соответствующими полями.

isBase64Encoded - это булевское поле, которое говорит, закодировано ли тело запроса/ответа.

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

Что такое ALB Multi-Header Values?
Как это реализовать?

A

Это фича ALB, которая позволяет правильно обработать “дурацкий” запрос,
в котором у НЕСКОЛЬКИХ HTTP заголовков (или у нескольких query parameter’ов)
ОДИНАКОВЫЙ ключ.

Есть настройка в ALB для этого
И придётся внести небольшие изменения в коде.