9

Ich versuche, eine Pull-Warteschlange von Google für den Zugriff auf die Rechen berechnen OAuth-Token mit PythonPull-Warteschlangen Genehmigung von Rechen

from oauth2client import gce 
from apiclient.discovery import build 
import httplib2 

credentials = gce.AppAssertionCredentials('') 
http = httplib2.Http() 
http=credentials.authorize(http) 
credentials.refresh(http) 
service = build('taskqueue', 'v1beta2', http=http) 
tq=service.taskqueues() 
tq.get(project=MY_APPENGINE_PROJECT, taskqueue=PULL_QUEUE_NAME, getStats=True).execute() 

Ich erhalte 403 httperror „Sie sind nicht zu machen diesen API-Aufruf erlaubt“

bitte hilfe, welche konfiguration fehlt mir?

Dank, Shay

+0

Haben Sie in der taskqueue Serviceumfang passieren, wenn Sie die Instanz gestartet? https://developers.google.com/compute/docs/authentication hat mehr Informationen – shollyman

Antwort

11

UPDATE: Vielen Dank für diese Frage @Shay, ist die Frage, denen er begegnete kein Thema mehr, da wir Aliase erlaubt haben, zu arbeiten (wenn relevant) in der Task Queue API.

Für die Nachwelt hier ist die ursprüngliche Antwort unten:


Zwei der häufigsten Fehler, die ich gesehen habe, sind:

  1. vergessend die s~ in Ihrer App Engine-Projekt aufzunehmen. Zum Beispiel, wenn Ihre Anwendung ID my-awesome-app ist, dann rufen Sie

    tq.get(project='my-awesome-app', taskqueue=PULL_QUEUE_NAME... 
    

    , wenn Sie anrufen sollen

    tq.get(project='s~my-awesome-app', taskqueue=PULL_QUEUE_NAME... 
    
  2. vergessend das Compute-Dienstkonto der task queue ACL in queue.yaml hinzuzufügen. Um dies zu tun, müssen Sie das Dienstkonto erhalten, die mit Ihrem Projekt und fügen Sie es die acl:

    queue: 
    - name: pull-queue 
        mode: pull 
        acl: 
        - writer_email: [email protected] # can do all 
    

    und natürlich diesen PULL_QUEUE_NAME = 'pull-queue' hier bedeuten würde. Beachten Sie außerdem, dass [email protected] durch das Dienstkonto für Ihre Compute Engine-Instanz ersetzt werden sollte.

+1

BTW das Dienstkonto kann in der API-Konsole unter Team im unteren Teil der Seite gefunden werden – Shay

+0

Ich habe immer noch "Unzureichende Erlaubnis", siehe http://stackoverflow.com/questions/37479204/full-api-access-does-not-work-for-taskqueue Welche IAM-Rollen müssen für das Instanzkonto festgelegt werden? – xmedeko