Настройте Boto3, чтобы условно не выполнять команды - PullRequest
2 голосов
/ 09 апреля 2020

Я создаю коллекцию скриптов в Boto3, и я хотел бы иметь опцию DRY_RUN, в которой при значении True не будут выполняться команды Boto3. Я бы хотел, чтобы этот dry был запущен первым, чтобы я мог сначала просмотреть журналы, прежде чем запускать скрипт.

Я знаю, что у клиента EC2 есть параметр DryRun, который вы можете передать, но это вызывает ошибка, которую я не хочу. Кроме того, мой сценарий также тесно связан с клиентом Cloudformation, который не имеет опции DryRun.

Я начал с добавления всех моих команд Boto3 к if not DRY_RUN: ec2_client..., но это не самое элегантное решение. Я также думал о передаче каждой команды Boto3 в качестве параметра в служебную функцию, которая использует eval() для выполнения функции, если DRY_RUN имеет значение False, но это также не идеально.

Есть ли параметр конфигурации Boto3, промежуточное программное обеспечение, библиотека макетов / заглушек или какая-то python методика метапрограммирования, которая может здесь помочь?

...