【问题标题】:Google Cloud Function Not able to delete Bigquery Dataset谷歌云功能无法删除 Bigquery 数据集
【发布时间】:2022-09-27 15:56:42
【问题描述】:

我创建了一个云函数,它将列出所有符合特定条件的 Bigquery 数据集,然后删除所有此类 Bigquery 数据集。 我正在使用以下删除 API 请求:-

bigquery_client.delete_dataset(
dataset[\'schema_name\'], delete_contents=True, not_found_ok=True
)  # Make an API request.

它给出以下错误: -

fn_clean_bq_datasetrrhier7sk4oz Traceback (most recent call last): File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/flask/app.py\", line 2073, in wsgi_app response = self.full_dispatch_request() 
File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/flask/app.py\", line 1518, in full_dispatch_request rv = self.handle_user_exception(e) File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/flask/app.py\", line 1516, in full_dispatch_request rv = self.dispatch_request() 
File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/flask/app.py\", line 1502, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args) 
File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/functions_framework/__init__.py\", line 99, in view_func return function(request._get_current_object()) File \"/workspace/main.py\", line 76, in clean_bq_dataset bigquery_client.delete_dataset( 
File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/google/cloud/bigquery/client.py\", line 1571, in delete_dataset self._call_api( File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/google/cloud/bigquery/client.py\", line 759, in _call_api return call() 
File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/google/api_core/retry.py\", line 283, in retry_wrapped_func return retry_target( File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/google/api_core/retry.py\", line 190, in retry_target return target() 
File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/google/cloud/_http/__init__.py\", line 494, in api_request raise exceptions.from_http_response(response) google.api_core.exceptions.
Forbidden: 403 DELETE https://bigquery.googleapis.com/bigquery/v2/projects/xxxxxxxx/datasets/dataset_v05c248634?deleteContents=true&prettyPrint=false: Access Denied: Dataset xxxxxxxxx:dataset_v05c248634: Permission bigquery.datasets.delete denied on dataset xxxxxxxxxxx:dataset_v05c248634 (or it may not exist).

请在 Google 云功能上建议此处缺少哪些权限。

  • 仅供参考,您的问题实际上包含答案:permission bigquery.datasets.delete denied。 (如果你修复了那个,你会看到另一个)

标签: google-cloud-platform google-cloud-functions google-iam


【解决方案1】:

Required permissions

要删除数据集,您需要以下 IAM 权限:

bigquery.datasets.delete (lets you delete a dataset)
bigquery.tables.delete (lets you delete tables and views)

以下每个预定义 IAM 角色都包含您删除数据集所需的权限:

roles/bigquery.dataOwner
roles/bigquery.admin

此外,如果您拥有 bigquery.datasets.create 权限,则可以删除您创建的数据集和表。

【讨论】:

    猜你喜欢
    • 2019-12-08
    • 2022-09-23
    • 1970-01-01
    • 2021-03-06
    • 2021-06-17
    • 2017-08-15
    • 2021-02-26
    • 1970-01-01
    • 2017-10-26
    相关资源
    最近更新 更多