Итак, у вас есть экземпляр EC2, работающий на AWS (если у вас его еще нет, прочтите этот пост: https://medium.com/@praneeth.jm/launching-and-connecting-to- an-aws-ec2-instance-6678f660bbe6 ).

Теперь давайте посмотрим, как мы можем настроить среду Python, перенести сценарии Python с вашего локального компьютера на удаленный экземпляр и запустить их.

Чтобы увидеть все, что установлено в вашем экземпляре, введите следующие команды:

cd /usr/bin/
ls
  1. Вероятно, вы увидите, что python 2.7 уже установлен, что является более старой версией, поэтому давайте продолжим и установите python 3.6.
sudo yum install python36

Даже после установки python 3.6 запуск python --version в терминале Putty по-прежнему указывает на python 2.7, давайте это изменим.

alternatives --set python /usr/bin/python3.6
python --version

Что мы там сделали: изменили питон по умолчанию на более новую версию, теперь он должен указывать на python 3.6.

2. Затем мы хотим установить pip3, который мы будем использовать для установки пакетов python.

cd /tmp
curl -O https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py --user
pip3 --version

Теперь мы можем использовать pip3 для установки пакетов Python. Если вы хотите установить пакет selenium, запустите следующее в своем терминале Putty.

pip3 install selenium --user

Давайте перенесем скрипт Python с нашего локального компьютера на экземпляр EC2 и попробуем запустить его.

  1. Сначала откройте терминал Windows на вашем компьютере с помощью cmd.
  2. Используйте scp (протокол безопасного копирования) для передачи файлов между локальным и удаленным хостом. Команда scp имеет три аргумента, первый аргумент - это путь к файлу с закрытым ключом «.pem» , второй аргумент - это путь к местоположению файла, который вы хотите скопировать с вашего компьютера, а третий аргумент - это путь к местоположению в экземпляре, куда вы хотите его скопировать.
scp -i path/to/.pem_file path/to/file   username@host_address.amazonaws.com:/path_to_copy

username@host_address.amazonaws.com в приведенном выше коде - это не что иное, как доменное имя экземпляра, которое вы можете найти на странице «Просмотр экземпляра» на aws.

Например, у меня есть файл моего закрытого ключа «test.pem» и скрипт Python «test.py» в папке «D: / ec2 /» , и я хочу скопировать их со своего локального компьютера в домашнюю папку экземпляра ec2.

scp -i D:/ec2/test.pem D:/ec2/test.py [email protected]:/home/ec2-user

Убедитесь, что вы запускаете это в терминале командной строки Windows, а не в терминале Putty. Примечание. Если вы получаете сообщение об ошибке «В разрешении отказано» или «Разрешения слишком открыты », то нам нужно изменить разрешения для файла закрытого ключа« .pem » так, чтобы только владелец имел к нему доступ.

3. Щелкните правой кнопкой мыши файл «.pem». ›Выберите« Свойства »› Нажмите вкладку «Безопасность» ›Нажмите« Дополнительно »› Нажмите на «Отключить наследование». Это должно очистить все записи разрешений.

4. Теперь вам нужно добавить разрешения для владельца. Запишите имя пользователя, которое отображается как владелец на экране. Затем нажмите «Добавить» ›Нажмите« Выбрать принципала »› Введите имя владельца в текстовое поле с надписью «Введите имя объекта, чтобы выбрать »› Нажмите «Проверить имена». Теперь в этом поле должно появиться имя владельца. ›Нажмите OK› Установите флажок «Полный доступ» ›Нажмите OK.

5. Запустите команду scp еще раз, и вы должны увидеть, что ваши файлы переданы в экземпляр EC2.

Теперь подключитесь к экземпляру EC2 в Putty и введите ls, это даст вам список всех файлов в текущем рабочем каталоге, теперь вы должны увидеть «test.py », Представляющий собой сценарий Python для печати« Hello World ». Запустите этот сценарий, используя python test.py, и вы должны увидеть результат.

Если вы хотите открыть файл python, просмотреть его содержимое и внести в него изменения, вы можете использовать следующие команды Linux в терминале Putty.

vi test.py открывает скрипт Python для просмотра. Если вы хотите отредактировать файл, нажмите i, затем отредактируйте файл с помощью клавиатуры, после того, как вы закончите вносить изменения, нажмите клавишу ESC, затем введите :wq и нажмите клавишу ввода, чтобы записать изменения в файл и выйти.

Вы также можете настроить задание cron для автоматического запуска скриптов Python через определенный интервал или время в вашем экземпляре ec2. Сделать это:

  1. Запустите службу cron sudo service crond start
  2. Отредактируйте файл crontab с помощью crontab -e
  3. Добавьте путь к файлу, который нужно запустить. Нажмите клавишу «i», чтобы начать редактирование файла, а затем добавьте 0 */1 * * * python path/to/file. Убедитесь, что вы указали полный путь к сценарию python, который хотите запустить.

Строка времени cron состоит из пяти значений, разделенных пробелами, каждое из которых указывает минуту (0–59), час (0–23), день месяца (1–31), месяц (1–12) и день недели (0 –7, 0 и 7 обозначают воскресенье).

Если вы добавите косую черту (/) и целое число к подстановочному знаку в любой из позиций символа, вы можете настроить задачу cron на регулярный запуск.

Если вы хотите выполнить парсинг веб-страниц с помощью Selenium и ChromeDriver, ознакомьтесь с моим следующим постом: https://medium.com/@praneeth.jm/running-chromedriver-and-selenium-in-python-on-an-aws -ec2-instance-2fb4ad633bb5