У меня есть скрипт на python, который выполняет вычисления на экземплярах Google Compute Engine.Код работает хорошо с точки зрения выполнения вычислений, но в определенных точках кода ему нужно добавлять / удалять файлы из корзины облачного хранилища, и я делаю это с помощью gsutil.Это хорошо работает при запуске с моего локального компьютера, но не работает, когда тот же код запускается из экземпляра облака Google.«Не работает» сообщение об ошибке выдает сообщение об ошибке, но мой код продолжает выполняться и просто игнорирует шаги, связанные с gsutil.
Насколько я понимаю из документации Google, экземпляры gcloud загружаются с "gsutil"."утилита уже установлена.Мои экземпляры загружаются, запуская скрипт, подобный следующему (где мое действительное имя пользователя Google):
#! /bin/bash
sudo apt-get update
sudo apt-get -yq install python-pip
sudo pip install --upgrade google-cloud
sudo pip install --upgrade google-cloud-storage
sudo pip install --upgrade google-api-python-client
sudo pip install --upgrade google-auth-httplib2
mkdir -p /home/<xxxx>/code
mkdir -p /home/<xxxx>/rawdata
mkdir -p /home/<xxxx>/processeddata
sudo chown -R <xxxx> /home/<xxxx>
gsutil cp gs://<codestorebucket>/worker-python-code/* /home/<xxxx>/code/
gsutil -m cp gs://<rawdatabucket>/* /home/<xxxx>/rawdata/
Я пока не запускаю свой код из загрузочного скрипта, так как хочу "SSH" войти в экземпляр и запустить его самиз командной строки, пока я все еще развиваюсь.Когда я SHH в экземпляр, все каталоги были созданы и весь код и необработанные файлы данных были скопированы.Я могу запустить свой «.py» файл, и он запускается, но есть строки, в которых используется команда python:
subprocess.call('gsutil -q rm gs://<mybuckname>/<myfilename>', shell=True)
Это приводит к ошибке, которая гласит:
ERROR: (gsutil) Failed to create the default configuration. Ensure your have the correct permissions on: [/home/<xxxx>/.config/gc
loud/configurations].
Could not create directory [/home/<xxxx>/.config/gcloud/configurations]: Permission denied.
Если этопредоставляет любые подсказки, в файле "daemon.log" есть строка ошибки, которая гласит:
chown: invalid user: ‘<xxxxx>’
, которая сообщается при запуске командной строки sudo chown ...
Экземплярыиметь полный доступ ко всем API.Если я запускаю
whoami
Ответ "xxxxx".Если я запускаю
echo $UID
Ответ - 1000.
Я новичок в Linux, так как я только "узнал" об этом из-за необходимости что-то делать в экземплярах Google.Здесь есть ссылка здесь , где у пользователя появляется похожая проблема.Он исправляет это с помощью командной строки типа sudo chown, но когда я запускаю эквивалентную команду, мне говорят, что он «не может получить доступ» /home/paulgarlick07/.config/ ': нет такого файла или каталога "
IЯ действительно запутался, и любая помощь будет очень цениться.Если для решения этой проблемы потребуется дополнительная информация, сообщите мне!