Я ищу правильный способ доступа к хранилищу из контейнера, который работает в облаке Google.
У меня есть следующий тест script.py
:
from google.cloud import storage
client = storage.Client()
bucket = client.get_bucket('my_test_bucket')
blob = bucket.blob('test_file.txt')
blob.upload_from_string('test content')
и образ Docker, который просто запускает его (python 3.7).
Ведро является частным и, следовательно, нуждается в аутентификации, и в этом моя проблема.
Другие пользователи говорят, что это должно происходить прозрачно, пока выполняется в правильном проекте.
Однако, это не сработало для меня (так как на этот вопрос был дан ответ, библиотека python устарела в пользу google-cloud-storage
, и Container Engine изменил свое имя на Kubernetes Engine).
Мне удалось заставить его работать, создав учетную запись службы и задав GOOGLE_APPLICATION_CREDENTIALS
путь к учетным данным json, но для этого необходимо поместить личные учетные данные в (возможно общедоступный) образ Docker.
Как правильно это сделать?