我是谷歌云平台的新手。我已经设置了一个Google VM实例。运行命令时,我在本地计算机上遇到身份验证问题:
python manage.py makemigrations
你能提出一些解决问题的建议吗?
错误跟踪
File "/constants.py", line 18, in <module>
table_data = datastore_fetch(project_id, entity_kind)
File "/datastore_helper.py", line 23, in datastore_fetch
results = list(query.fetch())
File "/venv/local/lib/python2.7/site-packages/gcloud/datastore/query.py", line 463, in __iter__
self.next_page()
File "/venv/local/lib/python2.7/site-packages/gcloud/datastore/query.py", line 434, in next_page
transaction_id=transaction and transaction.id,
File "/venv/local/lib/python2.7/site-packages/gcloud/datastore/connection.py", line 286, in run_query
_datastore_pb2.RunQueryResponse)
File "/venv/local/lib/python2.7/site-packages/gcloud/datastore/connection.py", line 124, in _rpc
data=request_pb.SerializeToString())
File "/venv/local/lib/python2.7/site-packages/gcloud/datastore/connection.py", line 98, in _request
raise make_exception(headers, error_status.message, use_json=False)
gcloud.exceptions.Forbidden: 403 Missing or insufficient permissions.
其他信息:
gcloud auth list
Credentialed Accounts:
- user_account@gmail.com ACTIVE
To set the active account, run:
$ gcloud config set account `ACCOUNT`
gcloud config list
Your active configuration is: [default]
[core]
account = user_account@gmail.com
disable_usage_reporting = True
project = user_project
输入:(独立的Python函数)
from gcloud import datastore
client = datastore.Client('user_project')
print(vars(client.connection.credentials))
输出:
{'scopes': set([]), 'revoke_uri': 'https://accounts.google.com/o/oauth2/revoke', 'access_token': None, 'token_uri': 'https://www.googleapis.com/oauth2/v4/token', 'token_info_uri': None, 'token_response': None, 'invalid': False, 'refresh_token': u'1/t-V_pZicXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'client_id': u'3XXXXXXXX9.apps.googleusercontent.com', 'id_token': None, 'client_secret': u'ZXXXXXXXXXXXXXXXXXXX2', 'token_expiry': None, 'store': None, 'user_agent': 'Python client library'}
虚拟机详细信息
Firewalls
Allow HTTP traffic
Allow HTTPS traffic
Availability policies
Preemptibility Off (recommended)
Automatic restart
On (recommended)
On host maintenance
Migrate VM instance (recommended)
Custom metadata
None
SSH Keys
Block project-wide SSH keys
None
Service account
service-account@user_project.iam.gserviceaccount.com
Cloud API access scopes
This instance has full API access to all Google Cloud services.
谢谢
只需运行以下两个命令:
从本地机器开始工作。
应用程序默认凭据的行为自128版起在
gcloud
中有changed。一个人应该使用
相反。
请注意,通过
gcloud auth login
或gcloud init
或gcloud config set account MY_ACCOUNT
更改凭据不会影响应用程序默认凭据,它们与gcloud凭据分开管理。使用本地开发中的数据存储模拟器,我必须基于Datastore and DatastoreClient docs设置
apiEndpoint
。对此可能有更优雅的处理,但这解决了本地开发中的代码7“权限丢失或不足”错误。(我在数据存储模式下使用Firestore。)相关问题 更多 >
编程相关推荐