Подключение к Google Datastore с помощью gcloud
Я пытаюсь подключиться к своему экземпляру Google Datastore, но не могу найти пример кода для инициализации подключения!
Основная документация Gcloud сразу начинается с того, как назначить сущность или запрос, но пропускает важный бит соединения. Демонстрационный раздел кажется специфическим для демо в том смысле, что в нем используются переменные тестовой среды, что весьма запутанно.
Самое главное, меня интересует, какие переменные среды мне нужно определить и возможно ли определить адрес электронной почты службы и путь к ключу из программы Python.
Высоко ценим, если кто-нибудь может предоставить пример кода, как зафиксировать что-либо в экземпляре хранилища данных.
Спасибо!
2 ответа
Посмотрев вокруг, я наконец нашел переменные окружения, которые мне нужно определить.
Чтобы подключиться к вашему хранилищу данных 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.
Создание учетной записи службы в разделе "Учетные данные консоли разработчика" и загрузка ключа JSON с последующим указанием на нее переменной среды GOOGLE_APPLICATION_CREDENTIALS - это один из подходов, если вы не используете Appengine или Compute engine.
Обычно вы бы не делали этого в коде, как вы, так как он специфичен для конкретной среды.
Если вы используете Compute Engine, вы можете просто создать экземпляр с областью хранилища данных, и тогда этот шаг не требуется:
gcloud compute instances create $INSTANCE_NAME --scopes datastore userinfo-email
Также еще один способ указать идентификатор проекта:
from gcloud import datastore
datastore.set_defaults(dataset_id='project-id')