如何将gcloud获取的Access Token用于R的bigrquery包
在bigrquery中使用临时GCP访问令牌创建客户端
步骤1:获取临时访问令牌
在Vertex AI云端笔记本的终端执行以下命令获取令牌:
gcloud auth print-access-token
或者直接在R会话中调用系统命令获取:
access_token <- system("gcloud auth print-access-token", intern = TRUE)
步骤2:将令牌封装为httr认证对象
bigrquery依赖httr包处理认证,需要把字符串格式的令牌转换成Token2.0对象,同时禁用本地缓存以适配临时登录场景:
library(httr) library(bigrquery) # 构建临时Token对象,不缓存到本地 token <- Token2.0$new( endpoint = NULL, params = list(access_token = access_token), credentials = list(access_token = access_token), cache_path = FALSE ) # 让bigrquery使用该令牌完成认证 bq_auth(token = token)
步骤3:使用BigQuery服务
认证完成后,即可正常调用bigrquery的所有功能,比如指定项目ID执行查询:
# 替换为你的GCP项目ID project_id <- "your-gcp-project-id" # 示例:查询公开数据集 query_job <- bq_project_query( project = project_id, query = "SELECT * FROM `bigquery-public-data.samples.gsod` LIMIT 10" ) # 将查询结果转为数据框 result_df <- bq_table_download(query_job) print(result_df)
适配Vertex AI云端笔记本的注意事项
- 令牌有效期默认1小时,过期后重新执行
gcloud auth print-access-token获取新令牌即可; - Vertex AI笔记本已预装并配置gcloud CLI,无需额外初始化环境;
- 全程无需创建或存储密钥文件,完全基于临时会话认证,符合云端场景的安全要求。
内容的提问来源于stack exchange,提问作者Greg Dougherty
相关产品推荐
相关产品推荐

