Google云数据融合的权限问题



我正在按照云数据融合样本教程中的说明进行操作,并且一切似乎都很好,直到我尝试在最后运行管道。根据说明,为Google托管服务帐户设置了云数据融合服务API权限。管道预览函数无问题。

但是,当我部署和运行管道时,几分钟后会失败。状态从配置变为运行管道后不久,随着以下权限错误停止:

   com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
    {
      "code" : 403,
      "errors" : [ {
        "domain" : "global",
        "message" : "xxxxxxxxxxx-compute@developer.gserviceaccount.com does not have storage.buckets.create access to project X.",
        "reason" : "forbidden"
      } ],
      "message" : "xxxxxxxxxxx-compute@developer.gserviceaccount.com does not have storage.buckets.create access to project X."
    }

xxxxxxxxxxxx-compute@developer.gserviceaccount.com是我项目的默认计算机服务帐户。

" project x"不是我的之一,我不知道为什么管道启动代码试图在那里创建一个存储桶,它确实成功创建了临时存储桶(一个称为df-xxx,一个称为dataproc-xxx(在我的项目失败之前。

我尝试了两个单独的帐户,并在两个地方都会遇到相同的错误。我曾尝试在各种服务帐户中添加存储/管理角色无济于事,但是那是在我意识到它试图完全访问另一个项目之前。

我相信我能够复制这个。发生的事情是,BigQuery源插件首先创建一个临时工作的GCS存储桶来导出数据,我怀疑它默认情况下正在尝试在数据集项目ID中创建它,而不是您自己的项目。

作为解决方法,在您的帐户中创建一个GCS存储桶,然后在管道的BigQuery源配置中,将"临时存储桶名"配置设置为" gs://your-bucket-name>"

创建实例后,您缺少设置权限步骤。提供您服务帐户权限权限的说明在此页面中https://cloud.google.com/data-fusion/docs/how-to/create-instance

最新更新