#amazon-web-services #anaconda #conda
Вопрос:
Мы пытаемся запускать пакетные сценарии при загрузке на экземпляре AWS EC2, используя данные пользователя (которые, как я понимаю, основаны на cloud-init). Поскольку код выполняется в среде conda, мы пытаемся активировать его до запуска кода Python/Pandas. Мы заметили, что переменная PATH устанавливается неправильно. (даже если он был установлен правильно до создания изображения и установлен правильно для всех пользователей после входа по SSH в экземпляр)
Мы пытались:
#!/bin/bash
source activate path/to/conda_env
bash path/to/script.sh
и
#!/bin/bash
conda run -n path/to/conda_env bash path/to/script.sh
Кажется, ничего не работает. Этот код запускает сценарий при передаче в экземпляр EC2, но не при использовании данных пользователя EC2 cloud-init (запуск сценария при запуске). Я проверил, что скрипт действительно работает при запуске, создав простой текстовый файл с пользовательскими данными, поэтому он работает при запуске экземпляра…
Комментарии:
1. «Похоже, ничего не работает». — это не конкретно. Почему именно это не работает? Какие-нибудь ошибки?
2. Никаких ошибок, ничего. Просто не выполняет код. Вы можете видеть, как мой скрипт увеличивается в верхней части в обычном сеансе ssh, но он не отображается при запуске из cloud-init.
3. Вы проверяли какие-либо файлы журналов, в частности
/var/log/cloud-init-output.log
?4. Да, и, похоже, он работает до завершения-просто не активирует conda и не выполняет сценарий, для которого требуется env conda. Я также проверил, что cloud-init выполнял мой сценарий, создав простой текстовый файл.
5. Можете ли вы уточнить, что именно вы подразумеваете под «не активировать conda и выполнить сценарий, для которого требуется env conda». Если ошибок нет, то ваш код выполняется правильно и может завершиться инициализацией. Вы, конда, были активированы на данный момент, могли бы запустить запуск. Что именно вы ожидаете от этого кода?