Лямбды на AWS с ошибкой CloudFormation: «Версия для этой лямбда-функции существует. Измените функцию, чтобы создать новую версию «.

#aws-lambda #amazon-cloudformation

#aws-lambda #aws-cloudformation

Вопрос:

Я развертываю AWS lambda с использованием CloudFormation.

В шаблоне я использую флаг, AutoPublishAlias: v1 который должен создать версию, добавить необходимые разрешения и обновить псевдоним «v1», чтобы указать на последнюю версию.

Когда я внедряю это изменение, я получаю следующую ошибку:

 A version for this Lambda function exists ( 8 ). Modify the function to create a new version.
  

Я использую CICD. Иногда я повторно развертываю ту же самую лямбду, изменив другую часть шаблона CloudFormation (например, добавив AutoPublishAlias флаг).

Я думал, что CloudFormation должна была правильно обрабатывать это — обновлять только ресурсы, которые изменились?

Итак, почему я вижу эту ошибку, и есть ли обходной путь, кроме введения фиктивного изменения кода?

Ответ №1:

Пожалуйста, смотрите https://seed.run/docs/serverless-errors/a-version-for-this-lambda-function-exists.html

Ошибка не в Cloudformation, это бессерверное указание CF развернуть новую лямбда-версию, которая фактически является той же самой.

Я увидел эту проблему после обновления с sls 1 до 2. Пришлось делать фиктивные изменения для каждой функции одновременно.

После этого проблема не возникала.

Комментарии:

1. У меня есть эта проблема, хотя я меняю функцию

2. Это не имеет ничего общего с бессерверным. Я использую AWS CDK и вижу эту проблему.

3. fairpoint, cdk и serverless генерируют код cloudformation, в котором появляется эта ошибка. Но решение, по сути, то же самое