Назад | Перейти на главную страницу

aws cli не настроен при вызове из скрипта python внутри службы systemd?

Я использую экземпляр EC2 с ubuntu 18.04 и python 3.6. Я запускаю скрипт python, который использует вызовы aws cli для разных вещей. Перед запуском скрипта я настроил aws cli с моими ключами доступа, регионом по умолчанию и т. Д.

Когда я запускаю скрипт прямо из командной строки, используя:

$ / дом / убунту / анаконда3 / бен / питон / дом/ubuntu/blahblah/script_name.py

он работает нормально, вызовы aws cli работают нормально и т. д. Команды aws cli выполняются так же, как если бы я запускал их напрямую из командной строки.

НО, мне нужно, чтобы скрипт запускался и запускался автоматически, когда я запускаю экземпляр EC2. Итак, я создал сервис, который вызывает этот скрипт и запускает его через systemd. Когда я это делаю, служба запускается, запускается скрипт python, но при вызове aws cli он не работает на полпути. Появляется сообщение об ошибке, которое предполагает, что aws cli не настроен. В сообщении об ошибке говорится: «Вы должны указать регион. Вы также можете настроить свой регион, запустив aws configure».

Я также выполнил команду

Список настроек $ aws

внутри сценария. При запуске напрямую из командной строки в нем были указаны введенные мной данные конфигурации. Когда я запускаю его через службу systemd, он сообщает мне (видно через $ journalctl -u service_name.service), что значения конфигурации [access_key, secret_key, region] «не установлены».

Я также попытался перенастроить aws cli с помощью sudo, а затем вызвать команды aws cli с sudo впереди, но получил ту же проблему.

Есть идеи, что не так?

У меня он работает. Я следовал инструкциям по этой ссылке, https://www.slashroot.in/how-to-install-and-configure-aws-cli-on-ubuntu-16-04. В разделе «Как настроить awsd cli для всех пользователей» содержится указание отредактировать файл / etc / environment, как показано ниже:

ubuntu @ localhost: ~ $ cat / etc / environment PATH = "/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games: / usr / local / games "AWS_ACCESS_KEY_ID = your_key AWS_SECRET_ACCESS_KEY = your_ultra_secret_key AWS_DEFAULT_REGION = your_favorite_region

После этого и последующего переключения на sudo перед всеми командами aws cli они работали независимо от того, вызывались ли они из командной строки, внутри скрипта python, запущенного из командной строки ИЛИ службы systemd!