AWS Lambda, Python: вызов сценария оболочки из команды Lambda или Linux - PullRequest
3 голосов
/ 28 июня 2019

Я работаю над лямбда-скриптом AWS, написанным на Python, где в настоящее время я получаю все экземпляры с определенными тегами и удаляю из них самый старый.После этого из оставшихся экземпляров я бы хотел вызвать команду linux для этих экземпляров.Единственное, что мне нужно, это вызвать crontab -r, так как для самого старого экземпляра будет установлен cron, и добавление этих cron в экземпляры, созданные ASG, приведет к отправке дубликатов электронных писем.

Я закончил до получения всех экземпляров, кроме самого старого, но как я могу вызвать crontab -r в каждом из этих экземпляров?Есть идеи.Спасибо.

Код:

import boto.ec2
import boto3
conn=boto.ec2.connect_to_region("eu-central-1")
reservations = conn.get_all_instances()
instances_list = []
process_instance_list = []
for res in reservations:
    for inst in res.instances:
        if 'Name' in inst.tags:
            if inst.tags['Name'] == 'PROJECT_NAME' :
               instances_list.append(inst);


instances_list.sort(key=lambda x: x.launch_time, reverse=False)
non_processed_id=instances_list[0]

for val in instances_list:
    if val.id != non_processed_id.id:
       // Call crontab -r here.

Спасибо.: -)

1 Ответ

2 голосов
/ 28 июня 2019

Используйте boto3 send_command для выполнения команды на ec2.

Пример для вашего случая:

boto3.client('ssm').send_command(
    InstanceIds=[val.id], 
    DocumentName='AWS-RunShellScript', 
    Parameters={'commands': ['crontab -r']}, 
    Comment='Crontab remove'
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...