AWS Lambda: SAM развертывание ... определение и удаление старых версий пакета S3? - PullRequest
1 голос
/ 04 ноября 2019

Я относительно новичок в AWS lambda и SAM, и теперь у меня все работает, у меня, казалось бы, простой вопрос, на который я не могу найти ответ.

Я провелНа прошлой неделе я запускал и запускал лямбда-приложение с использованием SAM (сборка, упаковка, развертывание несколько раз, пока оно не заработало).

Проблема

Так что теперь мой контейнер S3, который я использую для загрузки,многочисленные (около 100) ранее загруженных (sam package) версий моего zip'd-кода.

Вопрос

  1. Как определить, какие текущие zip-пакеты являются текущимите (то есть используемые текущей функцией и / или слоем) и удаляющие все старые устаревшие?
  2. Есть ли способ в SAM (опции строки cmd или в файлах шаблонов), чтобы он автоматически удалял старыеверсии вашего пакета, когда вы 'sam package' загружаете новую версию?
  3. Есть ли где-нибудь в консоли AWS найти ключ, для которого zip-файл в вашем ведре использует текущая функция или слой? (Я пытался найти это везде, но не смог… легко получить ARN, но не тот фактический URI в вашем корзине, на который отображается)

Небольшое усложнение

В корзине, которую я использую для хранения лямбда-пакетов, у меня также есть специальный слой.
Так что, если бы это были только пакеты приложений, я мог бы (прямо сейчас) просто зайти и удалитьвсе в корзине, а затем выполнить повторную сборку / пакет / развертывание, чтобы очистить его. ... но это также привело бы к удалению моего слоя (и - та же проблема - теперь я уверен, какой zip-файл в корзине использует слой).

Но этот подход все равно не будет работать в долгосрочной перспективе,поскольку я планирую собрать около 10-15 различных пакетов / функций, поэтому удаление всего содержимого корзины при обновлении только одного из них не сработает.

спасибо за любые мысли,идеи и помощь!

1 Ответ

0 голосов
/ 04 ноября 2019

1.В вашем packaged.yaml (созданном после вызова sam package) файле вы можете увидеть под каждой лямбда-функцией a CodeUri с уникальным путем s3://your bucket/id. id - это тот, который используется текущей функцией и / или слоем и находится в вашем ведре. В слое это ContentUri.

2. автоматически удаляет старые версии вашего пакета, когда вы 'sam package' загружаете новую версию - я не знаю, что-то подобное.

3. Через консоль AWS вы можете увидеть версию своего слоя, я не думаю, что есть указание на вашу функцию / слой CodeUri / ContentUri.

...