Я нашел paramiko слишком низкоуровневым, а Fabric не особенно хорошо подходит для использования в качестве библиотеки, поэтому я собрал свою собственную библиотеку под названием spur , которая использует paramiko для реализации немного более удобный интерфейс:
import spur
shell = spur.SshShell(hostname="localhost", username="bob", password="password1")
result = shell.run(["echo", "-n", "hello"])
print result.output # prints hello
Если вам нужно запустить внутри оболочки:
shell.run(["sh", "-c", "echo -n hello"])
Для этого вы можете использовать AWS Cloudwatch Events .
В основном вы создаете правило события с типом службы как EC2 и тип события как «уведомление об изменении состояния экземпляра EC2» и «завершено» как выбранное состояние. В цель выберите свою функцию лямбда.
Теперь ваша Лямбда будет вызвана во всех экземплярах EC2, которые будут завершены. Затем вам придется фильтровать в лямбда на основе тега