我尝试运行一个 docker 容器应用程序来访问 Cloud Shell 中的 Cloud Datastore,但访问被拒绝。我怀疑 Cloud Shell 没有访问 Cloud Datastore 的范围。
是否可以为 Cloud Shell 实例添加适当的范围?
我尝试运行一个 docker 容器应用程序来访问 Cloud Shell 中的 Cloud Datastore,但访问被拒绝。我怀疑 Cloud Shell 没有访问 Cloud Datastore 的范围。
是否可以为 Cloud Shell 实例添加适当的范围?
Cloud Shell 凭据处理中存在一个错误,在该错误中,使用较新版本的 Python oauth2client 包(直接或间接)会失败并出现类似错误
File "/usr/local/lib/python2.7/dist-packages/oauth2client/contrib/gce.py", line 117, in _retrieve_info
self.service_account_email = info['email']
TypeError: string indices must be integers
这应该在较新的映像版本中得到修复。Cloud Shell 的新会话不应出现此问题。以下是在 Cloud Shell 中运行的容器中使用 Cloud Datastore API 的工作示例:
$ cat Dockerfile
FROM python
RUN pip install gcloud
COPY test.py .
CMD ["python", "test.py"]
$ cat test.py
from gcloud import datastore
client = datastore.Client(project='your-project-id-23242')
query = datastore.Query(client, kind='EntityKind')
print(list(query.fetch()))
$ docker build -t test .
... docker output ...
$ docker run -ti test
[]
该示例仅打印出一个空列表,因为我的项目数据存储区中没有任何“EntityKind”类型的实体,但您明白了。
PS 我在谷歌工作。