我正在尝试使用@googlecloud/tasks,并根据node.js文档创建了一段代码,用于创建HTTP目标任务。云任务API已启用,我已从gcloud
CLI创建了一个队列。
我的后端是云运行。我已按照说明为HTTP目标处理程序身份验证配置服务帐户。服务帐户具有以下权限:
- 云运行调用程序
- 云任务Enqueuer
- 云任务任务运行程序
- 服务帐户用户
最后,关于使用带有身份验证令牌的HTTP目标任务,我补充了:
oidcToken: { serviceAccountEmail, },
到task
对象。尽管如此,在回应中仍然是PERMISSION_DENIED: Request had insufficient authentication scopes
。
实际上,即使我尝试了一些基本的方法,比如列出队列:
const {CloudTasksClient} = require('@google-cloud/tasks'); const client = new CloudTasksClient(); const parent = client.queuePath('my-project', 'my-region', 'my-queue-name'); client.listQueues({parent})
我得到了相同的身份验证错误。我在Docker容器中运行节点,所以这可能就是为什么Application Default Credentials无法工作的原因?知道我如何成功认证吗?