9

Я пытаюсь получить доступ к очереди тянуть от Google Compute с вычислительным OAuth маркер с помощью питонатянуть очереди авторизация из вычисления

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() 

Я получаю HttpError 403 «вы не можете сделать это апи вызов»

, пожалуйста, помогите, какая конфигурация у меня отсутствует?

спасибо, Shay

+0

Прошел ли вы в области обслуживания задачи после запуска экземпляра? https://developers.google.com/compute/docs/authentication имеет дополнительную информацию – shollyman

ответ

11

UPDATE: нет Спасибо @Shay за этот вопрос, вопрос, он столкнулся уже не является проблемой, так как мы позволили псевдонимами работать (при необходимости) в очереди задач API.

Для потомков здесь оригинальный ответ ниже:


Два из наиболее распространенных ошибок, которые я видел, являются:

  1. Забыв включить s~ в вашем проекте App Engine. Например, если ваше приложение идентификатор my-awesome-app, то вы звоните

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

    когда вы должны называть

    tq.get(project='s~my-awesome-app', taskqueue=PULL_QUEUE_NAME... 
    
  2. Забывая добавить учетную запись Compute службы в task queue ACL в queue.yaml. Для этого вам необходимо получить учетную запись службы, связанные с проектом и добавить его в acl:

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

    и, конечно, это будет означать PULL_QUEUE_NAME = 'pull-queue' здесь. Также обратите внимание: [email protected] следует заменить учетной записью службы для экземпляра Compute Engine.

+1

Кстати, учетную запись службы можно найти в консоли api под командой в нижней части страницы – Shay

+0

У меня все еще есть «Недостаточное разрешение», см. http://stackoverflow.com/questions/37479204/full-api-access-does-not-work-for-taskqueue Какие роли IAM необходимо установить для учетной записи экземпляра? – xmedeko