#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, в котором появляется эта ошибка. Но решение, по сути, то же самое