我目前正在学习GCP,需要在VM实例中运行python笔记本。打开VM的外壳时,我运行了以下代码:
sudo install python-pip
pip install --upgrade google-api-python-client
pip install --upgrade google-cloud-datastore
gcloud auth application-default login
然后我加载了python笔记本。运行此代码以启动笔记本时:
python mynotebook.py
我收到以下错误:
/home/rnby87/.local/lib/python2.7/site-packages/google/auth/_default.py:66: UserWarning: Your application has authenticated using end user credentials from Google Cloud SDK. We recommend that most server applications use service accounts instead. If your application continues to use end user credentials from Cloud SDK, you might receive a "quota exceeded" or "API not enabled" error. For more information about service accounts, see https://cloud.google.com/docs/authentication/warnings.warn(_CLOUD_SDK_CREDENTIALS_WARNING)
我正在运行Google Cloud SDK文档(https://cloud.google.com/datastore/docs/datastore-api-tutorial)
中的python代码。from google.cloud import datastore
def create_client(project_id):
return datastore.Client(project_id)
非常感谢您的帮助!谢谢!
答案 0 :(得分:0)
对于Google Cloud SDK和CLI,您应该使用服务帐户凭据。
步骤1:创建服务帐户并下载
步骤2:配置gcloud和SDK以使用服务帐户。
您将需要服务帐户的电子邮件地址(也存储在Json文件中)和服务帐户文件名。
从VM中的Shell运行以下命令:
gcloud auth activate-service-account SERVICE_ACCOUNT_EMAIL_ADDRESS --key-file=service_account_filename.json
第3步:验证您的凭据是否有效:
gcloud auth list
您应该看到您的服务帐户在左列中列出了一个星号(指示该帐户)。
注意:由于您在Google虚拟机(GCE)实例中运行,因此高级用户通常会使用Compute Engine默认服务帐户获取凭据。我建议先学习如何使用服务帐户Json文件。
第4步:指定服务帐户
设置环境变量GOOGLE_APPLICATION_CREDENTIALS
指向您的服务帐户json文件。这是一个示例,将路径更改为您的路径。
对于Linux:
export GOOGLE_APPLICATION_CREDENTIALS="/home/username/[FILE_NAME].json"
对于Windows:
set GOOGLE_APPLICATION_CREDENTIALS="c:\Users\username\[FILE_NAME].json"
步骤5:创建服务客户端时可以选择指定服务帐户:
from google.cloud import datastore
def create_client(project_id):
return datastore.Client(project_id).from_service_account_json('service_account_filename.json')