2

Я пытаюсь подключиться к экземпляру Google Datastore, но я не могу найти какой-либо пример кода для инициализации соединения!Подключение к хранилищу данных Google с помощью gcloud

Начальная страница documentation Gcloud сразу же начинается с назначения объекта или запроса, но пропускает критический бит соединения. Демо-раздел кажется специфичным для демонстрации, поскольку он использует переменные тестовой среды, которые довольно запутывают.

Самое главное, меня интересуют, какие переменные среды мне нужно определить, и если можно определить служебную электронную почту и путь к ключу из программы python.

Высоко оценивайте это, если кто-либо может предоставить пример кода о том, как передать что-то в экземпляр хранилища данных.

Спасибо!

ответ

1

Осмотревшись, я наконец нашел переменные окружения, которые мне нужно определить.

Чтобы подключиться к Google датасторе внутри Python:

import os 

os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = <path to private key> 
os.environ['GCLOUD_DATASET_ID'] = <dataset_id, also known as project id> 

# Fetching queries should work now 
query = datastore.Query(kind=<kind>, namespace=<namespace>) 
for result in query.fetch(): 
    print result 

Google предполагает, что вы используете App Engine с Datastore, поэтому его сложнее найти эти переменные, если первое введение в Google Cloud является Datastore оказание услуг.

1

Создание учетной записи службы в разделе «Учетные данные консоли разработчика» и загрузка ключа JSON, а затем наличие переменной окружения GOOGLE_APPLICATION_CREDENTIALS указывает на один подход, если вы не используете механизм Appengine или Compute.

Обычно вы не делаете этого в коде, как вы, так как он специфичен для данной среды.

Если вы используете Compute Engine, вы можете просто создать экземпляр с объемом хранилища данных, а затем этот шаг не является необходимым:

gcloud compute instances create $INSTANCE_NAME --scopes datastore userinfo-email 

Кроме того, еще один способ указать идентификатор проекта, как это:

from gcloud import datastore 
datastore.set_defaults(dataset_id='project-id') 
+0

Это не очень жестко запрограммировано в моем примере, оно импортируется из файла настроек, специфичного для каждой среды, в которой я планирую запустить код. –

Смежные вопросы