Cloud Shell的访问范围

时间:2016-08-04 00:50:01

标签: google-cloud-datastore google-cloud-platform google-cloud-shell

我尝试运行一个docker容器应用程序,该应用程序访问Cloud Shell中的Cloud Datastore,但拒绝访问。我怀疑Cloud Shell没有访问Cloud Datastore的范围。

是否可以在Cloud Shell实例中添加适当的范围?

1 个答案:

答案 0 :(得分:1)

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”实体,但您明白了。

P.S。我在谷歌工作。