Назад | Перейти на главную страницу

AWS Lambda автоматически использует последний уровень

У нас есть стек без сервера, который использует несколько AWS Lambdas для выполнения задач. Чтобы сделать код пригодным для повторного использования, у нас есть несколько слоев лямбда, которые используются в лямбдах.

Наша проблема в том, что когда мы вносим изменения в слой, создается новая версия слоя. Все лямбда-выражения, использующие этот слой, не используют автоматически последнюю версию. Однако они достаточно умны, чтобы обнаружить, что есть новая версия и что она больше не работает (выдает исключение, которое необходимо для использования последнего уровня).

Для 50+ Lambdas портал AWS имеет ужасный поток обновления слоев. По очереди откройте все лямбда-выражения вручную, удалите слой, добавьте новый слой и т. Д.

Есть ли способ обновить все лямбды, чтобы использовать последнюю версию всех необходимых слоев, используя интерфейс командной строки или другой автоматизированный метод?

Каждый раз, когда вы обновляете цикл слоев с помощью ваших лямбда-функций и обновляете их config. Ты можешь использовать AWS CLI для этого:

aws lambda update-function-configuration --layers ...

Однако лучший способ - это развернуть CI / CD для ваших слоев и лямбда-выражений и настроить зависимости. Каждый раз, когда конвейер уровня обновляется, он должен запускать повторное развертывание всех лямбда-выражений, которые зависят от этого уровня. Все современные инструменты CI / CD могут это делать - GitLab, Jenkins, GoCD или даже AWS CodePipeline.

Таким образом, все, что вам нужно сделать, это отправить новый код слоя в репозиторий git, а ваш инструмент CI / CD позаботится обо всем остальном.

Надеюсь, это поможет :)