Derzeit probiere ich den Python-Client des Storage API Writers von BigQuery anhand seines Schnellstartbeispiels (Dokumentation, Code) aus. Der Versuch ist fehlgeschlagen und es wurde ein Fehler angezeigt, der darauf hinweist, dass der Benutzer keine Berechtigung zum Zugriff auf die Ressource hat oder versucht hat, auf eine nicht vorhandene Ressource zuzugreifen, während der Benutzer über ausreichenden Zugriff auf den Datensatz/die Tabelle verfügt und die Zieltabelle tatsächlich vorhanden ist (weil bigquery.Client ausgeführt wird). insert_rows in derselben Tabelle funktioniert!):
Code: Select all
google.api_core.exceptions.PermissionDenied: 403 Permission 'TABLES_UPDATE_DATA' denied on resource '[RESOURCE_PATH]' (or it may not exist).
Ich schätze, das liegt daran, dass die Bibliothek Standardeinstellungen (etwa „us-east1“) anstelle der Region wählt, in der die Tabelle tatsächlich bleibt, was bei der Verwendung und Entwicklung von BigQuery üblich ist. Dann tritt hier das Problem auf, wenn ich die Dokumentation des Python SDK lese:
Code: Select all
# - It may require specifying regional endpoints when creating the service
# client as shown in:
# https://googleapis.dev/python/google-api-core/latest/client_options.html
Im Gegensatz zum BigQuery-Client-SDK, das die Möglichkeit bietet, einen Regionsnamen anzugeben, wird in der Dokumentation der Storage-API nur darauf hingewiesen, dass Benutzer eine Region angeben können, indem sie die Client-Optionen der Google API überschreiben, und ... das war's. Ich weiß, dass api_endpoint möglicherweise funktioniert, aber was genau ist der Endpunkt in der Region, die ich verwende?