簡體   English   中英

從計算中提取隊列授權

[英]pull queues authorization from compute

我正在嘗試使用python從計算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“你不能進行這個api調用”

請幫忙,我錯過了哪些配置?

謝謝,謝伊

更新 :感謝@Shay提出這個問題,他遇到的問題不再是問題,因為我們已經允許別名在任務隊列API中工作(相關時)。

對於后代,這里的原始答案如下:


我見過的兩個最常見的錯誤是:

  1. 忘記在您的App Engine項目中包含s~ 例如,如果您的應用程序ID是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服務帳戶添加到queue.yaml任務隊列ACL 為此,您需要獲取與項目關聯的服務帳戶並將其添加到acl

     queue: - name: pull-queue mode: pull acl: - writer_email: 123845678986@project.gserviceaccount.com # can do all 

    當然這意味着PULL_QUEUE_NAME = 'pull-queue' 另請注意, 123845678986@project.gserviceaccount.com應替換為Compute Engine實例的服務帳戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM