Простой вопрос:
Работает ли автоматическое управление версиями 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.
Любая помощь приветствуется!