小编Gra*_*lor的帖子

如何在云编辑器环境中获取合适的凭据以调用 Google Sheets API?

我希望能够在通过云编辑器运行 python 代码时访问谷歌表上的数据;在本地运行代码时,我知道如何以多种方式执行此操作,但事实证明,迁移到云具有挑战性。特别是我希望作为作曲家服务帐户进行身份验证,而不是将 client_secret.json 文件的内容藏在某处(源代码或某个云位置)。

对于本质上相同的问题,而是访问 google 云平台服务,由于google-cloud_* 库,这相对容易(即使通过 composer 运行)。例如,我已经验证我可以将数据推送到 bigquery:

from google.cloud import bigquery
client = bigquery.Client()

client.project='test project'
dataset_id = 'test dataset'
table_id = 'test table'

dataset_ref = client.dataset(dataset_id)
table_ref = dataset_ref.table(table_id)
table = client.get_table(table_ref)

rows_to_insert = [{'some_column':'test string'}]
errors = client.insert_rows(table,rows_to_insert)
Run Code Online (Sandbox Code Playgroud)

可以通过与 Composer 服务帐户共享(或不共享)“测试数据集”来管理此操作的成功或失败。

同样,从云存储桶中获取数据也能正常工作:

from google.cloud import storage
client = storage.Client()
bucket = client.get_bucket('test bucket')
name = 'test.txt'
data_blob = bucket.get_blob(name)
data_pre = data_blob.download_as_string()
Run Code Online (Sandbox Code Playgroud)

我再次能够通过 IAM 控制访问。

然而,为了使用谷歌表格,我似乎必须求助于谷歌 APIs python 客户端,在这里我遇到了困难。关于此的大多数文档(这似乎是一个移动的目标!)假设本地代码执行,从 client_secret.json 文件 …

python google-authentication google-oauth airflow google-cloud-composer

5
推荐指数
1
解决办法
1588
查看次数