从云任务触发HTTP云函数时发生PERMISSION_DENIED 403错误



我正在尝试使用云任务来触发云函数教程,但当我尝试运行创建的任务时,我遇到了一个错误:

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',
},

该任务是从云函数创建的。

我还修改了目标云功能访问控制,以便角色为Cloud Functions InvokerallAuthenticatedUsers可以访问它。我可以使用云功能控制台测试触发该功能,不会出现任何错误。

我错过了什么?有什么想法吗?

我刚刚想明白了。我使用ingress-settings=internal-only部署了该功能。认为云任务将被视为一项内部服务。我不得不将其更改为默认的all,然后它就工作了。internal-and-gclb也不起作用。

转到IAM页面,找到云任务服务代理服务帐户:service-<projectNumber>@gcp-sa-cloudtasks.iam.gserviceaccount.com,并在其上授予角色roles/iam.serviceAccountTokenCreator

教程中没有提到。我猜你没有这么做。

相关内容

  • 没有找到相关文章

最新更新