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 中的日志条目并展开所有嵌套字段,您可以通过 authenticationInfo
和 authorizationInfo
找到哪个身份缺少哪些权限字段
服务帐户(调用 BigQuery 的身份)没有权限 bigquery.jobs.create.
将 IAM 角色 roles/bigquery.jobUser 又名 BigQuery 作业用户 添加到服务帐户。
从你的问题看不清楚,但你似乎在调用 Cloud Functions。 Cloud Functions 然后调用 BigQuery。分配给 Cloud Functions 的服务帐户需要 IAM 权限。
Google 尽管 Cloud Scheduler 中使用的服务帐户和尝试调用云函数的帐户都已授予列出的权限,但 Cloud Function 仍抛出以下错误。
这是云调度程序配置:
以及分配给该帐户的权限。
这是云函数日志输出:
Cloud Function 使用服务帐户 运行 其代码。此服务帐户 (SA) 可能不同于您在 Cloud Scheduler 中使用的帐户。 (默认情况下,Cloud Function 使用 App Engine 默认 SA,如下面的屏幕截图所示)
因此,首先检查您使用的是哪个 SA 以及它具有哪些角色。
顺便说一下,如果您访问 Google Cloud Logging 中的日志条目并展开所有嵌套字段,您可以通过 authenticationInfo
和 authorizationInfo
找到哪个身份缺少哪些权限字段
服务帐户(调用 BigQuery 的身份)没有权限 bigquery.jobs.create.
将 IAM 角色 roles/bigquery.jobUser 又名 BigQuery 作业用户 添加到服务帐户。
从你的问题看不清楚,但你似乎在调用 Cloud Functions。 Cloud Functions 然后调用 BigQuery。分配给 Cloud Functions 的服务帐户需要 IAM 权限。