我正在尝试Using Cloud Tasks to trigger Cloud Functions教程,但是当我尝试运行创建的任务时,我得到一个错误:
Status code: 7 (PERMISSION_DENIED)
Reason for retrying: PERMISSION_DENIED(7): HTTP status code 403我已经创建了一个具有Cloud Functions Invoker角色的新服务帐户。并修改了我的代码,以便使用此服务帐户创建任务:
const task = {
httpRequest: {
httpMethod: protos.google.cloud.tasks.v2.HttpMethod.POST,
url,
oidcToken: {
serviceAccountEmail: 'cloud-tasks-client@my-actual-project.iam.gserviceaccount.com',
},该任务是从云函数创建的。
我还修改了目标云函数访问控制,以便allAuthenticatedUsers可以使用Cloud Functions Invoker角色访问它。我可以使用云函数控制台测试触发函数,没有任何错误。
我错过了什么?有什么想法吗?
发布于 2020-09-11 16:24:32
我刚想通了。我用ingress-settings=internal-only部署了这个函数。认为云任务将被视为内部服务。我不得不将其更改为默认的all,然后它就起作用了。internal-and-gclb也不起作用。
发布于 2020-09-11 15:48:06
转到IAM页面,找到云任务服务代理服务帐户:service-<projectNumber>@gcp-sa-cloudtasks.iam.gserviceaccount.com,并在该帐户上授予角色roles/iam.serviceAccountTokenCreator。
你的教程中没有提到这一点。我猜不是你干的。
https://stackoverflow.com/questions/63836857
复制相似问题