当我尝试将任务添加到队列时,会抛出上述错误消息。这是我的设置和有关此问题的信息:
- 项目编号:
my-project
- 服务帐号 ID:
my-service-account
- 任务队列名称:
my-queue
- 任务队列位置:
asia-northeast1
(Cloud Task 目前处于测试阶段的少数几个位置之一)
另外,让我们确认以上所有内容都存在并且正在运行。
当我通过 POSTING 检查我的服务帐户角色时https://cloudresourcemanager.googleapis.com/v1/projects/my-project:getIamPolicy
我收到类似于以下内容的回复:
{
"status": 200,
"data":
{
"version": 1,
"etag": "BwV6nNWJg4E=",
"bindings": [
{
"role": "roles/cloudtasks.admin",
"members": [
"serviceAccount:my-service-account@my-project.iam.gserviceaccount.com"
]
},
{
"role": "roles/cloudtasks.enqueuer",
"members": [
"serviceAccount:my-service-account@my-project.iam.gserviceaccount.com"
]
}]
}
}
如您所见,my-service-account
具有以下 2 个角色:
- 角色/cloudtasks.admin
- 角色/cloudtasks.enqueuer
这两个角色都有cloudtasks.tasks.create
权限。
当我尝试使用以下命令将任务添加到 Cloud Task 时:
POST https://cloudtasks.googleapis.com/v2beta3/projects/my-project/locations/asia-northeast1/queues/my-queue/tasks
+ 任务负载
我收到以下错误消息:
{
"status": 403,
"data":
{
"error":
{
"code": 403,
"message": "The principal (user or service account) lacks IAM permission \"cloudtasks.tasks.create\" for the resource \"projects/my-project/locations/asia-northeast1/queues/my-queue\" (or the resource may not exist).",
"status": "PERMISSION_DENIED"
}
}
}
这真的让我很困惑。
有谁知道我可能做错了什么?