У нас есть стек без сервера, который использует несколько 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 позаботится обо всем остальном.
Надеюсь, это поможет :)