2

Ich habe versucht, eine Andock-Containeranwendung auszuführen, die auf Cloud Datastore in der Cloud Shell zugreift, der Zugriff wurde jedoch verweigert. Ich vermute, dass die Cloud Shell nicht über den Zugriff auf Cloud Datastore verfügt.Der Zugriffsbereich der Cloud Shell

Ist es möglich, einen geeigneten Bereich der Cloud Shell-Instanz hinzuzufügen?

+0

Welchen genauen Fehler erhalten Sie? –

+0

Hier ist der letzte Teil von Fehler. ----- File "/usr/local/lib/python2.7/dist-packages/oauth2client/contrib/gce.py", Leitung 134, in _refresh self._retrieve_info (http_request) File " /usr/local/lib/python2.7/dist-packages/oauth2client/contrib/gce.py“, Linie 117, in _retrieve_info self.service_account_email = info [ 'E-Mail'] Typeerror: String-Indizes müssen ganze Zahlen sein ----- Sorry, das Problem war nicht der Umfang, aber die Auth-Konto. Das Dienstkonto wird standardmäßig nicht in der Cloud Shell verwendet und dies hat den Fehler verursacht. Wie kann ich erzwingen, dass die Container-App das Dienstkonto verwendet? – etusji

Antwort

1

Es gibt einen Fehler in Cloud Shell Credential Handhabung war, wo mit neueren Versionen von Python oauth2client Paket (entweder direkt oder indirekt) würde wie mit Fehlern fehlschlagen

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 

Dies sollte in der neueren Bild Version behoben werden. Bei neuen Sitzungen der Cloud Shell sollte dieses Problem nicht auftreten. Hier ist ein funktionierendes Beispiel für Cloud Datastore API in einem Behälter verwendet wird, läuft in Cloud Shell:

$ 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 []

Das Beispiel druckt nur ein leeres Liste, weil ich keine Entitäten vom Typ "EntityKind" im Datenspeicher meines Projekts habe, aber Sie bekommen die Idee.

P.S. Ich arbeite bei Google.

+0

Ja, es funktioniert jetzt. Vielen Dank! – etusji

Verwandte Themen