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

使用C# SDK对接Google BigQuery的身份认证问题求助

解决BigQuery "Application Default Credentials" 认证错误

问题背景

尝试使用BigQueryClient.Create(projectId)代码上传CSV到BigQuery时,遇到错误:

The Application Default Credentials are not available. They are available if running in Google Compute Engine. Otherwise, the environment variable GOOGLE_APPLICATION_CREDENTIALS must be defined pointing to a file defining the credentials.

以下是针对你的疑问的分步解决方案:

一、所需凭证及获取方法

你需要Google Cloud服务账号密钥(JSON格式),获取步骤:

  • 登录Google Cloud控制台,进入目标项目
  • 进入「IAM与管理」→「服务账号」页面
  • 点击「创建服务账号」,完成名称、描述填写后保存
  • 为该服务账号分配BigQuery权限(如BigQuery Data Editor、BigQuery Job User,根据操作需求选择)
  • 进入服务账号详情页,切换到「密钥」标签,点击「添加密钥」→「创建新密钥」
  • 选择「JSON」格式,点击创建,浏览器会自动下载密钥文件

二、本地开发时的环境变量配置与文件存放

设置环境变量

  • Windows(命令提示符):
    set GOOGLE_APPLICATION_CREDENTIALS="C:\实际路径\your-key-file.json"
    
  • Windows(PowerShell):
    $env:GOOGLE_APPLICATION_CREDENTIALS="C:\实际路径\your-key-file.json"
    
  • macOS/Linux:
    export GOOGLE_APPLICATION_CREDENTIALS="/实际路径/your-key-file.json"
    

文件存放建议

密钥文件可放在本地任意安全位置,建议放在项目目录外,避免误操作提交到版本控制。

Git提交注意事项

绝对不要将JSON密钥文件提交到Git仓库,这会导致凭证泄露,引发安全风险。请将密钥文件路径添加到.gitignore文件中,确保它不会被纳入版本控制。

三、云函数部署场景的处理

1. 部署到Google Cloud Functions

Google Cloud Functions会自动使用默认服务账号(或可指定自定义服务账号),无需手动设置环境变量:

  • 确保函数使用的服务账号拥有BigQuery所需权限
  • 部署时可通过--service-account参数指定自定义服务账号邮箱,例如:
    gcloud functions deploy your-function-name --service-account=your-service-account@your-project.iam.gserviceaccount.com
    

2. 部署到Azure Functions

需将服务账号密钥作为应用程序配置添加:

  • 登录Azure门户,进入你的Function App
  • 打开「配置」→「应用程序设置」
  • 添加新设置:键为GOOGLE_APPLICATION_CREDENTIALS,值为JSON密钥文件的完整文本内容(直接粘贴文件内的所有内容,而非文件路径)
  • 也可在代码中直接读取该环境变量内容并加载凭证,替代依赖文件路径的方式

内容的提问来源于stack exchange,提问作者Learning AWS and PostgreSQL

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 19:45:31