我是GCP平台的新手,正在尝试创建一个简单的数据融合工作流程,以从驻留在GCS存储桶中的文本文件加载BigQuery表。
工作流已成功部署。但是,在运行工作流程时,它在步骤2中失败,并显示一条错误语句
PROVISION任务以REQUESTING_CREATE状态失败,无法运行程序 program_run:default.testing_df.-SNAPSHOT.workflow.DataPipelineWorkflow.5ff986e9-7241-11e9-af46-56bbe5c7844b。
在下面的详细日志中,我们具有“对'projects / mylab-gcp'的'compute.firewalls.list'权限”
下面是执行的完整错误日志。
2019-05-09 10:01:13,945-调试 [provisioning-service-7:i.c.c.i.p.t.ProvisioningTask@121]-执行中 PROVISION子任务REQUESTING_CREATE用于程序运行 program_run:default.testing_df.-SNAPSHOT.workflow.DataPipelineWorkflow.5ff986e9-7241-11e9-af46-56bbe5c7844b。 2019-05-09 10:01:16,839-信息 [provisioning-service-7:i.c.c.r.s.p.d.DataprocProvisioner@171]- 创建Dataproc集群 具有系统标签的cdap-testingdf-5ff986e9-7241-11e9-af46-56bbe5c7844b {goog-datafusion-version = 6_0,cdap-version = 6_0_0-1555624816640, goog-datafusion-edition = basic} 2019-05-09 10:01:17,162-错误 [provisioning-service-7:i.c.c.i.p.t.ProvisioningTask@151]-PROVISION 任务以REQUESTING_CREATE状态失败,无法运行程序 program_run:default.testing_df.-SNAPSHOT.workflow.DataPipelineWorkflow.5ff986e9-7241-11e9-af46-56bbe5c7844b。 com.google.api.client.googleapis.json.GoogleJsonResponseException:403 禁止{“代码”:403,“错误”:[{ “ domain”:“ global”, “ message”:“'对'projects / mylab-gcp'具有'compute.firewalls.list'权限”, “ reason”:“ forbidden”}],“ message”:“'projects / mylab-gcp'的'compute.firewalls.list'权限需要” com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:146) 〜[na:na]在 com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113) 〜[na:na]在 com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40) 〜[na:na]在 com.google.api.client.googleapis.services.AbstractGoogleClientRequest $ 1.interceptResponse(AbstractGoogleClientRequest.java:321) 〜[na:na]在 com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1065) 〜[na:na]在 com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:419) 〜[na:na]在 com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352) 〜[na:na]在 com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469) 〜[na:na]在 io.cdap.cdap.runtime.spi.provisioner.dataproc.DataprocClient.getFirewallTargetTags(DataprocClient.java:310) 〜[na:na]在 io.cdap.cdap.runtime.spi.provisioner.dataproc.DataprocClient.createCluster(DataprocClient.java:155) 〜[na:na]在 io.cdap.cdap.runtime.spi.provisioner.dataproc.DataprocProvisioner.createCluster(DataprocProvisioner.java:172) 〜[na:na]在 io.cdap.cdap.internal.provision.task.ClusterCreateSubtask.execute(ClusterCreateSubtask.java:43) 〜[na:na]在 io.cdap.cdap.internal.provision.task.ProvisioningSubtask.execute(ProvisioningSubtask.java:54) 〜[na:na]在 io.cdap.cdap.internal.provision.task.ProvisioningTask.lambda $ executeOnce $ 0(ProvisioningTask.java:123) 〜[na:na]在 io.cdap.cdap.common.service.Retries.callWithRetries(Retries.java:183) 〜[na:na]在 io.cdap.cdap.common.service.Retries.callWithInterruptibleRetries(Retries.java:257) 〜[na:na]在 io.cdap.cdap.internal.provision.task.ProvisioningTask.executeOnce(ProvisioningTask.java:123) 〜[na:na]在 io.cdap.cdap.internal.provision.ProvisioningService.lambda $ null $ 16(ProvisioningService.java:559) [na:na]在 io.cdap.cdap.internal.provision.ProvisioningService.callWithProgramLogging(ProvisioningService.java:772) [na:na]在 io.cdap.cdap.internal.provision.ProvisioningService.lambda $ null $ 17(ProvisioningService.java:557) [na:na]在 io.cdap.cdap.common.async.KeyedExecutor $ 2.run(KeyedExecutor.java:98) 〜[na:na]在 java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511) 〜[na:1.8.0_212]在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 〜[na:1.8.0_212]在 java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access $ 201(ScheduledThreadPoolExecutor.java:180) 〜[na:1.8.0_212]在 java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) 〜[na:1.8.0_212]在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 〜[na:1.8.0_212]在 java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624) 〜[na:1.8.0_212]在java.lang.Thread.run(Thread.java:748) 〜[na:1.8.0_212] 2019-05-09 10:01:17,180-调试 [provisioning-service-7:i.c.c.i.p.t.ProvisioningTask@159]-已终止 PROVISION任务,用于程序运行 program_run:default.testing_df.-SNAPSHOT.workflow.DataPipelineWorkflow.5ff986e9-7241-11e9-af46-56bbe5c7844b 由于异常。
我可以在IAM控制台中看到我的根GCP控制台用户以及一个服务帐户“ mylab-bigquery@mylab-gcp.iam.gserviceaccount.com”。我已经将root帐户和service帐户都指定为Owner,并且在这两个帐户中都指定了以下其他角色。
BigQuery Admin 计算实例管理员(v1) 计算网络管理员 计算操作系统管理员登录 计算安全管理员 云数据融合管理员 云数据融合API服务代理 所有者
但是,在完成所有这些操作之后,我仍然收到相同的错误消息“'对'projects / mylab-gcp'具有'compute.firewalls.list'权限”
答案 0 :(得分:3)
请查看创建实例的“设置权限”步骤:https://cloud.google.com/data-fusion/docs/how-to/create-instance#setting_up_permissions
这应该可以为您解决问题。 请注意,这涉及向您的IAM策略添加新的服务帐户。