Ich frage mich, wie Sie das Dienstkonto in der Google App Engine-Standardumgebung verwenden. Ich schrieb einige Codes wie unten, um auf BigQuery mit einer richtigen JSON-Schlüsseldatei zuzugreifen.Wie Dienstkonto in Python auf GAE verwenden?
from google.cloud import bigquery
....
bigquery_client = bigquery.Client.from_service_account_json(proper_path_to_json_key)
list(bigquery_client.list_datasets())
Der Code funktioniert OK, wenn ich es auf einem lokalen Python-Interpreter ausführen, führt aber kläglich mit dem folgenden Fehler fehlgeschlagen, wenn es auf lokaler dev_appserver.py
läuft.
TransportError: ('Connection aborted.', error(13, 'Permission denied'))
Wenn es auf GAE läuft, ist es immer noch nicht, aber seine Fehlermeldung ist wie unten.
TransportError: ('Connection broken: IncompleteRead(208 bytes read)', IncompleteRead(208 bytes read))
Ich denke, dieser Fehler durch GAE Beschränkung ausgehenden Datenverkehr hier beschrieben verursacht wird https://cloud.google.com/appengine/docs/standard/python/issue-requests aber ich habe keine Ahnung, wie es zu lösen.
Was ist der beste Weg, Service Account in der GAE-Umgebung zu verwenden?