Google Compute Engine:无法向Task Queue API授权请求

时间:2015-07-06 22:51:18

标签: google-app-engine authorization google-compute-engine task-queue

大家。

我在尝试授权我的Compute Engine实例在任务队列队列上租用任务时遇到了麻烦。

我在实例创建配置中包含了必要的范围(我认为):

    "metadata": {
    "kind": "compute#metadata",
    "items": [
      {
        "key": "startup-script-url",
        "value": "[MY-STARTUP-SCRIPT]"
      },
      {
        "key": "service_account_scopes",
        "value": "https://www.googleapis.com/auth/cloud-platform"
      }
    ]
    },
    "serviceAccounts": [
    {
      "email": "[MY-SERVICE-ACCOUNT]",
      "scopes": [
        "https://www.googleapis.com/auth/devstorage.read_only",
        "https://www.googleapis.com/auth/logging.write",
        "https://www.googleapis.com/auth/taskqueue",
        "https://www.googleapis.com/auth/cloud-platform",
        "https://www.googleapis.com/auth/compute"
      ]
    }

同样在我的queue.yaml中,我已经使用" user_email"将相同的服务帐户添加到acl指令中。属性:

queue:
- name: [MY-QUEUELIST]
  mode: pull
  retry_parameters:
    task_retry_limit: 5
  acl:
  - user_email: [MY-COMPUTE-ENGINE-SERVICE-ACCOUNT]

最后,我在我的实例上运行的脚本使用GoogleCredentials.get_application_default()函数来获取凭据。此凭据作为参数传递给build()方法(如此处所述:https://cloud.google.com/compute/docs/authentication):

最终结果是,当我尝试列出给定任务队列的任务时,我收到此错误:

  

googleapiclient.errors.HttpError:https://www.googleapis.com/tasks/v1/lists/documentation-compiler-queue/tasks ?alt = json   返回"权限不足">

我缺少什么?!

提前致谢。

1 个答案:

答案 0 :(得分:1)

我有自己的错误!

请忽略此提示。我正在使用:

from googleapiclient.discovery import build
taskqueue_service = build('task', 'v1beta2', credentials=credentials)

而不是:

from googleapiclient.discovery import build 
taskqueue_service = build('taskqueue', 'v1beta2', credentials=credentials)

请注意构建方法中的[API名称]字符串