Как мы можем получить список всех файловых систем (EFS), подключенных к экземпляру EC2, с помощью python boto3?

Я использовал Boto3 для автоматизации многих вещей на AWS, но недавно кто-то попросил перечислить всю файловую систему экземпляра EC2. Я не могу найти какой-либо прямой способ получить все смонтированные файловые системы (AWS EFS) в экземпляр EC2.

У меня есть только идентификатор экземпляра. У меня есть программный доступ к ресурсам AWS, но нет прямого доступа к целевому экземпляру. Я проверил клиент EC2 и EFS, но я определенно что-то упускаю, поэтому спрашиваю здесь, сталкивался ли кто-нибудь с чем-то подобным и хочет поделиться здесь своим подходом.

Я знаю, что мы можем запустить «df -h», чтобы вывести список всех смонтированных файловых систем, но я не могу войти в экземпляр.


person ifti    schedule 19.03.2020    source источник


Ответы (1)


Если у вас есть программный доступ к ресурсам AWS, вы легко решите свою проблему. Что вы можете сделать, так это использовать API-интерфейс AWS System Manager Run Command (Send Command).

Это позволяет вам запускать команды непосредственно на сервере, и вы можете легко получить ответ команды в виде ответа API, с помощью которого вы можете получить желаемый ответ.

Вы можете использовать команду «Выполнить», чтобы выполнить df -h для экземпляра, а затем вы можете отфильтровать ответ в коде Python или выполнить однострочную команду, которая вернет вам список имен для системы монтирования.

Ниже приведены ссылки для запуска команды AWS System Manager (отправить команду): https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ssm.html#SSM.Client.send_command

Если вам нужен базовый скрипт, который позволит вам это сделать, дайте мне знать, я могу предоставить вам через день или два.

Спасибо

person ch941g    schedule 20.03.2020
comment
humm, вы можете легко получить ответ команды в виде ответа API. Запустить cmd никогда не возвращать выполненный вывод cmd. он возвращает выполненный статус cmd. любыми способами я добился этого, настроив ведро для захвата вывода запуска cmd ... ожидая 5 секунд, а затем читая ведро s3 формы файла с cmdid в качестве фильтра. - person ifti; 01.04.2020
comment
Он возвращает вывод команды, но до 25000 символов или около того. Вывод команды, который вы получаете, на самом деле тот же вывод, который вы видите в разделе вывода команды. В API ключ будет «StandardOutputContent». Под этим ключом вы сможете увидеть вывод вашей команды. - person ch941g; 15.04.2020