繁体   English   中英

从gcloud ml-engine作业访问Big Query

[英]Access from gcloud ml-engine jobs to Big Query

我有一个python ML进程使用env变量GOOGLE_APPLICATION_CREDENTIALS指向的本地json文件连接到BigQuery (该文件包含我的密钥由google提供,请参阅认证入门

在本地运行它时效果很好。

我现在希望通过Google的Ml引擎部署我的模型,特别是使用shell命令gcloud ml-engine jobs submit training

但是,在我运行我的流程并查看console.cloud.google.com/logs/viewer中的日志后,我看到gcloud无法访问Bigquery ,我收到以下错误:

 google.auth.exceptions.DefaultCredentialsError: File:
 /Users/yehoshaphatschellekens/Desktop/google_cloud_xgboost/....-.....json was not found.

目前我不认为gcloud ml-engine jobs submit training会带有Json文件(我认为gcloud可以自动访问BigQuery,我猜不是)

一个可选的解决方法是将我的个人.json保存到另一个子包文件夹中的python dependancies(请参阅packaging-trainer )并导入它。

这个解决方案是否可行/安全?

这个问题还有其他解决方法吗?

路径应该是绝对的,并且在Windows中使用反斜杠:

GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\[FILE_NAME].json"

在Python代码中以这种方式设置它:

os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = "C:\PATH.JSON"

此处使用Google Translate API的示例。

我最终做的是将json上传到gcloud存储桶,然后每次启动ML引擎训练过程时将其上传到我的项目中:

os.system('gsutil cp gs://secured_bucket.json .')
os.environ[ "GOOGLE_APPLICATION_CREDENTIALS"] = "......json"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM