Google Cloud Function 无法(写入)/(创建)bigquery table

Google Cloud Function not able to (write to)/(create a) bigquery table

Google 尽管 Cloud Scheduler 中使用的服务帐户和尝试调用云函数的帐户都已授予列出的权限,但 Cloud Function 仍抛出以下错误。

这是云调度程序配置:

以及分配给该帐户的权限。

这是云函数日志输出:

Cloud Function 使用服务帐户 运行 其代码。此服务帐户 (SA) 可能不同于您在 Cloud Scheduler 中使用的帐户。 (默认情况下,Cloud Function 使用 App Engine 默认 SA,如下面的屏幕截图所示)

因此,首先检查您使用的是哪个 SA 以及它具有哪些角色。

顺便说一下,如果您访问 Google Cloud Logging 中的日志条目并展开所有嵌套字段,您可以通过 authenticationInfoauthorizationInfo 找到哪个身份缺少哪些权限字段

服务帐户(调用 BigQuery 的身份)没有权限 bigquery.jobs.create.

将 IAM 角色 roles/bigquery.jobUser 又名 BigQuery 作业用户 添加到服务帐户。

从你的问题看不清楚,但你似乎在调用 Cloud Functions。 Cloud Functions 然后调用 BigQuery。分配给 Cloud Functions 的服务帐户需要 IAM 权限。

Reference