Таким образом, для Ruby вы можете установить содержимое JSON в переменную окружения GOOGLE_CLOUD_KEYFILE_JSON.Я пытаюсь найти документацию для Python, но все, что я вижу, это документация, загружающая аутентификацию для пути к файлу.
GOOGLE_CLOUD_KEYFILE_JSON
Я нашел способ сделать это, но я хочу знать, есть ли лучший способ.Используя библиотеку google-auth, я могу сделать что-то вроде этого:
google-auth
import json from google.cloud import bigquery from google.oauth2 import service_account """ Securely get content of JSON file from protected memory because having the credential file plainly on the filesystem is unsafe """ service_account_info = json.loads(json_file_content_string) credentials = service_account.Credentials.from_service_account_info(service_account_info) client = bigquery.Client(project='secret-proj', credentials=credentials)
Подробнее о библиотеке здесь: https://google -auth.readthedocs.io / en / latest / reference / google.oauth2.service_account.html
Вы должны иметь возможность читать переменные окружения на Python, используя следующее:
import os print os.environ['GOOGLE_CLOUD_KEYFILE_JSON']
Нет, вам нужно установить GOOGLE_APPLICATION_CREDENTIALS, указав путь к файлу JSON.
GOOGLE_APPLICATION_CREDENTIALS
Подробнее см. https://cloud.google.com/docs/authentication/getting-started.