Lambda: Containers, Versions & Aliases, CodeDeploy Flashcards

1
Q

Что такое Lambda Container Images?

A

Есть возможность деплоить Лямбда функцию НЕ в виде ZIP архива.
А в виде Docker Image’а из ECR.

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

Какие ограничения есть на Lambda Container Image?

A
  • Макс размер 10 GB
  • parent image ДОЛЖЕН удовлетворять Lambda Runtime API
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Какой use-case для Лямбда Container Images?

A
  • код уже Предоставлен в виде контейнера
  • объём кода большой, но до 10 GB
  • код Использует НЕ только библиотеки, но и Data-Set’ы
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Как можно протестировать Lambda Container Image локально?

A

используя Lambda Runtime Interface Emulator.

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

Какие best practices есть для Lambda Container Images в плане images?

A
  • Использовать AWS-provided базовые images
    (Amazon Linux 2, эти images уже закэшированы сервисом Лямбда)
  • Хранить images со схожими большими слоями (Docker Layers) в одном ECR репозитории
    (оптимизирует процесс сборки благодаря повторному использованию Docker Layers)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Какие best practices есть для Lambda Container Images в плане Dockerfile?

A
  • Использовать Multi-Stage Dockerfile
  • Размещать декларацию часто-меняющихся частей как можно НИЖЕ в Dockerfile’е
    (оптимизирует процесс сборки благодаря сохранению НЕ изменных Docker Layers)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

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

A
  • Версия по-умолчанию $LATEST является mutable
  • Все дальнейшие конкретные версии - immutable
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Что значит immutable версия?

A

immutable = мы НЕ можем менять
код функции, её environment variables и конфигурацию

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

Как можно однозначно обратиться к конкретной версии Лямбды?

A

Каждая версия Лямбда функции имеет свой ARN.

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

Для чего используют Lambda Alias?

A

Если нужно дать конечному пользователю неизменный Endpoint, то нужно использовать Lambda Aliases.
Можно выделять отдельный Alias для каждого окружения (DEV, PROD).

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

На что ссылается Lambda Alias? А на что нет?

A

Alias ссылается (как указатель, pointer) на конкретную версию Лямбда функции,
но НЕ может ссылаться на другой Alias.

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

Lambda Alias - mutable или нет? Почему?

A

Aliases являются mutable, так что можно менять версию Лямбда функции, НЕ меняя endpoint Alias’а.

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

Как можно применить Lambda Alias в деплойменте?

A

Canary Deployment через Aliases
Можно назначить WEIGHT каждой из нескольких Лямбда функций, закреплённых за одним Alias’ом.

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

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

A
  • Linear - постепенно смещать трафик (по 10% в минуту), пока не переведёт 100%
  • Canary - сместить 10%, проверить, сместить ещё 90%
  • AllAtOnce - самый быстрый и опасный
How well did you know this?
1
Not at all
2
3
4
5
Perfectly