Просто предлагаю некоторый фон на ответе аршаджи.
Два булевых значения True
и False
имеют странное отношение с целыми числами.
С одной стороны, они имеют разные строковые представления и имеют отдельные тождества:
>>> print(True)
True
>>> print(1)
1
>>> True is 1
False
С другой стороны, они ведут себя как целые числа при сравнении и арифметике:
>>> True == 1
True
>>> True + 1
2
Причиной такого поведения является совместимость. Давным-давно, тип bool
не существовал. «Булевы» операторы скопировали поведение С, повторно использовали 0
и 1
для «false» и «true».
В конце концов Guido реализовал , это не имело большого смысла и добавил константы, которые мы знаем и любим.
Но была проблема. Даже тогда было уже много кода, который обрабатывал логические значения, такие как целые числа. Если логические операции начали использовать «правильный» тип, весь этот код сломался.
Итак, Гвидо сделал компромисс. Булевы имеют свой собственный тип bool
и отличаются друг от друга целыми числами. Но в арифметических операциях и сравнениях, особенно __eq__
и __hash__
, они рассматриваются как одно и то же. Таким образом, старый код будет продолжать работать, в то время как новый код все еще может использовать новый тип bool
.
Возможно, это изменится на Python 4. Но пока bool
является подклассом int
, и нам придется жить с этим.
(В отношении связанной заметки это одна из причин, почему True
и False
указаны в заголовке, а не в нижнем регистре, например другие ключевые слова Python.)
Бессерверная платформа может быть тем, что вы ищете.
Я широко использовал его как в личных, так и в профессиональных проектах, и он делает то, что мне нужно. Это намного проще, чем Terraform и AWS SAM.
Все, что вам нужно сделать, это изменить файл serverless.yml
. Несколько строк кода .yml преобразуются в сотни строк в шаблоне CloudFormation.
В Сети есть парашютисты, посвященные краш-тестам , включая несколько очень хороших в Udemy. Тем не менее, Serverless Framework легко подобрать, поэтому, если вы время от времени создаете функцию, вам следует довольно быстро к ней привыкнуть. Их документация тоже очень хорошая.
Вот пример того, как управлять вашими очередями SQS (поскольку вы упомянули SQS в исходном вопросе)
Более простым решением для управления только лямбдами является использование AWS Chalice . Он может создавать триггеры Lambdas, API Gateway, CloudWatch. Он также может создавать триггеры для SQS и SNS для ваших функций Lambda, но не может , а не создавать очереди SQS или темы SNS.
Таким образом, вы можете развертывать Lambdas постепенно. Инструменты CD также могут быть настроены для автоматического развертывания.
В пространстве «инфраструктура как код» существует множество опций: CDK, CloudFormation, Terraform, Troposphere, Chalice, Serverless и другие.
Одно мнение см. В Формирование безсерверных облаков с помощью AWS: CloudFormation, SAM, CDK, Amplify .