Lambda: Env Vars, Monitoring, Config Flashcards

1
Q

При помощи env vars можно …

A

изменить поведение Лямбда функции БЕЗ изменений в коде

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

Lambda Service имеет некоторые стандартные

A

System Environment Variables

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

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

A

В переменных окружения можно хранить секреты (зашифрованные KMS)
- Ключ для шифрования секретов можно выбрать
- Lambda Service Key
- Customer Master Key (CMK)

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

Как можно отлаживать Лямбда функцию? Что для этого нужно?

A

Лямбда пишет логи своего выполнения в CloudWatch.

Благодаря IAM Role AWSLambda Basic ExecutionRole (позволяет upload’ить логи в CloudWatch).

Эта роль по-умолчанию прикреплена к любой новой Лямбде.

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

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

A
  • Invocations, Durations, Concurrent Executions
  • Errors amount
  • Iterator Age для Kinesis & DynamoDB Streams (на сколько курсор отстаёт)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Что нужно сделать, чтобы отслеживать Лямбду в X-Ray?

A
  • В настройках Лямбды нужно включить Active Tracing.
  • X-Ray Демон будет работать “из коробки”, ничего делать НЕ надо
  • X-Ray SDK должна быть использована в коде, нужно немного изменить код Лямбды
  • IAM Role для записи в X-Ray должна быть прикреплена к Лямбде
    (managed Role AWSXRayDaemonWriteAccess)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

В Лямбда коде можно использовать переменные окружения с информацией об X-Ray. Какие?

A

AWS_XRAY_DAEMON_ADDRESS содержит IP_ADDRESS:PORT демона

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

VPC по-умолчанию - что это значит в Лямбда?

A

По-умолчанию Лямбда запускается ВНЕ нашей VPC.
AWS имеет собственную VPC для запуска Лямбд.

Поэтому Лямбда НЕ имеет доступа к ресурсам,
которые находятся внутри нашей VPC.
Например, RDS, ElastiCache, internal ELB, internal EC2.

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

Что нужно указать, чтобы задеплоить Лямбду в свою VPC?

A

Можно задеплоить Lambda функцию в своей VPC, указав
- VPC ID
- Subnets
- Security Groups

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

Как Лямбда в нашей VPC свяжется с RDS в нашей VPC?
Что для этого нужно?

A

Лямбда создаст ENI (Elastic Network Interface) в подсети.
- Чтобы Лямбда смогла создать ENI, Лямбде нужно дать AWSLambda VPCAccess ExecutionRole
- Security Группа RDS должна разрешать (Allow) запросы от Security Группы Лямбды.

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

Как Лямбда в нашей VPC свяжется с public internet? Что на счёт public / private subnet? Что для этого нужно?

A
  • Лямбда функция в своей VPC НЕ имеет доступ в интернет (по-умолчанию).
  • Лямбда функция НЕ имеет доступ в интернет, даже если находится в public подсети.

Чтобы дать Лямбде (находящейся в кастомной VPC) доступ в интернет, то нужно создать NAT Gateway / Instance.
NAT Девайс выведет запрос в интернет через IGW.
- Чтобы Лямбда смогла создать ENI, Лямбде нужно дать AWSLambda VPCAccess ExecutionRole

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

Как EC2 instance в нашей VPC свяжется с public internet? Что на счёт public / private subnet?

A

Если в public подсети находится EC2 instance,
то он (в отличие от Лямбды) сразу по-умолчанию имеет доступ в интернет.

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

Как Лямбда в нашей VPC свяжется с DynamoDB в нашей VPC? Что для этого нужно? В чём разница между способами?

A

Есть 2 способа дать Лямбде (находящейся в кастомной VPC) доступ к DynamoDB.
- Lambda в приватной подсети → NAT ДевайсIGW → DynamoDB
- Lambda в приватной подсети → VPC Endpoint → DynamoDB

  • Чтобы Лямбда смогла создать ENI, Лямбде нужно дать AWSLambda VPCAccess ExecutionRole

Разница в том, что использовать VPC Endpoint нужно, если к DynamoDB необходимо подключаться по ПРИВАТНОЙ сети.

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

Как Лямбда в нашей VPC свяжется с CloudWatch? Что для этого нужно?

A

Если Лямбда функция развёрнута в приватной подсети кастомной VPC,
то доступ к CloudWatch Logs она имеет В ЛЮБОМ СЛУЧАЕ.
Даже если НЕ настроены NAT Девайсы или VPC Endpoint’ы.

CloudWatch для Лямбды доступен ВСЕГДА.
Если конечно у Лямбды есть IAM Role AWSLambda Basic ExecutionRole.

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

Какие настройки конфигурации есть у Лямбда?

A

RAM, vCPU, Timeout, Max Concurrent Executions

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

Каковы лимиты по RAM для Лямбды?

A

128 MB - 10 GB (шагами по 1 MB)

17
Q

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

A

vCPU увеличивается соразмерно RAM’у (напрямую CPU указать нельзя)
1_792 MB - это одна единица vCPU
После превышения этого уровня необходимо использовать много-поточный код, чтобы получать преимущества

18
Q

Если приложение является CPU-bound (делает много вычислений), …

A

то нужно увеличивать RAM

19
Q

Что такое vCPU?

A

vCPU (Virtual Central Processing Unit) - единица измерения вычислительной мощности.

20
Q

Каковы лимиты по timeout для Лямбда
Что если Лямбда превысила лимит по timeout? Что делать, если Лямбда постоянно превышает timeout?

A
  • По-умолчанию timeout 3 sec
  • Максимально можно выбрать timeout 900 sec (15 минут)

Время выполнения > timeout ⇒ timeout error

Если операция требует более 15-ти минут, то Лямбда НЕ подходит.
Лучше выбрать Fargate, ECS, EC2.