Я нашел небольшой образец кода о вставке bigquery в один из репозиториев git Google.
Если вы видите app.yaml, в нем говорится, что этот код должен быть потокобезопасным, но если я заглянул в документацию клиентской библиотеки (https://developers.google.com/api-client-library/python/guide/thread_safety) он не должен быть потокобезопасным. Я немного запутался, мой следующий код является потокобезопасным или нет? Он работает на стандартном env движка приложений.
import pprint
from googleapiclient.discovery import build
from oauth2client.client import GoogleCredentials
credentials = GoogleCredentials.get_application_default()
# Create the bigquery api client
service = build('bigquery', 'v2', credentials=credentials)
response = service.datasets().list(projectId='PROJECTID').execute()
pprint.pprint(response)
---- ОБНОВЛЕНИЕ ---- После ответа Тима я изменил свой код на следующий. Теперь это должно быть хорошо:
import pprint
from googleapiclient.discovery import build
from oauth2client.contrib.appengine import AppAssertionCredentials
import httplib2
credentials = AppAssertionCredentials(scope='https://www.googleapis.com/auth/bigquery')
# Create the bigquery api client
service = build('bigquery', 'v2')
def get():
# authorize http object with client credentials
http = credentials.authorize(httplib2.Http())
response = service.datasets().list(projectId='PROJECTID').execute(http=http)
pprint.pprint(response)