You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Google Cloud运行Python脚本遇requirements.txt问题及凭证配置咨询

解决GCP自动化数据管道的requirements.txt错误与身份验证疑问

一、最初requirements.txt的问题

你的requirements.txt里包含了time和os,这两个是Python的标准库模块,不需要通过pip安装,把它们从requirements.txt里删除即可。正确的内容应为:

google-cloud-bigquery
pandas

多余的标准库声明会导致pip尝试安装不存在的包,直接引发部署或运行错误。

二、GCP运行脚本的身份验证问题

在GCP的托管服务(比如Cloud Functions、Cloud Run、Dataflow等)中,不需要手动指定GOOGLE_APPLICATION_CREDENTIALS路径:

  • 这些服务会自动使用服务账号的身份进行认证,你只需要确保运行脚本的服务账号拥有对应的权限(比如BigQuery的bigquery.tables.create、bigquery.jobs.create等权限)。
  • 你最初代码里手动指定.\key.json,在部署到GCP时会因为文件路径错误(本地路径和托管环境路径不一致)、密钥文件未被包含在部署包中,或者权限不足导致认证失败。
  • 后来的代码中直接使用bigquery.Client(),就是利用了GCP的默认应用凭据机制,自动获取服务账号的身份,这是在GCP托管环境中推荐的做法。

三、代码优化说明

你最终的代码改用了Cloud Functions的Pub/Sub触发模式,这是GCP搭建自动化数据管道的合理选择:

  • 使用@functions_framework.cloud_event装饰器,让脚本符合Cloud Functions的触发规范。
  • 直接使用完整的表ID magnetic-guild-431700-a4.Test_DatasetID.Test_Table2,比先获取dataset再获取table的写法更简洁,也避免了因dataset/table引用方式导致的潜在错误。
  • 若需要确保任务完成后再返回,可以在job = client.load_table_from_dataframe(df, table_id)后添加job.result(),该方法会自动等待任务完成。

内容的提问来源于stack exchange,提问作者Maximuluss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 09:57:29