[英]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.