Работает ли автоматическое версионирование SAM Lambda с использованием AutoPublishAlias, когда URL-адрес кода изменяется, а код, на который он указывает, - нет? - PullRequest
0 голосов
/ 09 ноября 2018

Простой вопрос:

Работает ли автоматическое управление версиями SAM Lambda с использованием AutoPublishAlias для AWS::Serverless::Function, когда код CodeUri изменяется, но фактический код, на который он указывает, не работает?

Фон

Мы развертываем несколько функций Lambda @ Edge, используя тип ресурса SAM AWS::Serverless::Function.

Наше развертывание выполняется путем переноса кода в корзину S3 и последующего запуска обновления стека CloudFormation. Наш стек содержит другие вещи в дополнение к этим лямбдам.

При этом у нас часто возникают развертывания, в которых лямбда-код не меняется.

Однако при каждом развертывании код URI изменяется на корзину нашего новейшего развертывания, что, как и предполагалось, инициирует попытку публикации новой версии, что соответствует примечанию в документации SAM (вставлено ниже для контекста)

ПРИМЕЧАНИЕ. AutoPublishAlias ​​будет публиковать новую версию только при изменении CodeUri. Обновления другой конфигурации (например: MemorySize, Timeout) и т. Д. Не будут публиковать новую версию. Следовательно, ваш псевдоним будет продолжать указывать на старую версию, которая использует старые конфигурации.

Причина, по которой я спрашиваю, заключается в том, что у нас были некоторые временные проблемы с развертыванием CloudFormation, которые я пытался устранить, возможно, связанные с этим. Ошибка, возникающая в версии, сгенерированной SAM, в обновлении стека CloudFormation:

Существует версия для этой лямбда-функции ({некоторое число}). Измените функцию, чтобы создать новую версию.

Я взглянул на код SAM , где была создана версия, и большую часть их документации, но не смог найти четкого ответа.

Скорее всего, мы могли бы вручную создать AWS::Lambda::Function и AWS::Lambda::Version с разными логическими идентификаторами для версии каждый раз, что должно (?) Решить проблему, но мы пытались использовать SAM для автоматического создания версий наших Lambdas.

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 09 ноября 2018

Да, SAM создаст новую версию при изменении CodeUri, однако Lambda не позволит вам создать новую версию, если не было никаких изменений.

...