簡體   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