Текущая реализация работает не так, как вы хотите, каждый развернутый шаблон CloudFormation создаст свою собственную очередь SQS и свою собственную функцию Lambda.Если исходный код Lambda изменяется, вы должны повторно развернуть стек для всех компаний.Альтернативой может быть создание лямбда-слоя AWS и размещение всего общего кода в слое, а затем настройка лямбда-адресов с каждым соответствующим SQS для использования уровня.Это решит повторное использование кода, однако есть одна оговорка.Скопировано из документации :
Вы выбираете конкретную версию слоя для использования.Если вы хотите использовать другую версию позже, обновите конфигурацию вашей функции.
Другими словами, код повторно используется между ресурсами Lambda, но вы все равно должны повторно развернуть все функции с помощьюновый номер версии слоя Lambda.
Другой альтернативой может быть реализация CloudFormation Macro .Взгляните на пример Count , но представьте, что он содержит множество ваших компаний вместо числа.Отказ от ответственности, я еще не пытался использовать макросы вместе с AWS SAM.
Примечание: проблема, с которой вы сталкиваетесь batch-sqs-queue-process already exists in stack....
, заключается в том, что вы указали FunctionName
как часть шаблона SAM.Имена лямбда-функций должны быть уникальными во всех стеках, подробнее о CloudFormation Name Type в руководстве пользователя.При удалении имени функции CloudFormation создаст уникальное имя (обычно на основе имени стека, имени ресурса и некоторых случайных символов), которое является уникальным.