Dataflow API 不会在 GCP 中激活
Posted
技术标签:
【中文标题】Dataflow API 不会在 GCP 中激活【英文标题】:Dataflow API will not activate in GCP 【发布时间】:2016-07-07 04:33:34 【问题描述】:我正在尝试在我的项目中使用数据流 API。在云仪表板中,我使用规定的链接启用了所有 API:https://console.cloud.google.com/flows/enableapi?apiid=dataflow,compute_component,logging,storage_component,storage_api,bigquery,pubsub,datastore&redirect=https:%2F%2Fcloud.google.com%2Fdataflow%2Fgetting-started&showconfirmation=true&_ga=1.200330088.756201991.1447156694
但是,当我在 Eclipse 中运行数据流作业时,出现运行时错误:
原因:java.lang.RuntimeException:无法创建工作流作业:项目尚未启用 API。请使用 Google Developers Console 为您的项目激活“数据流”API。 在 com.google.cloud.dataflow.sdk.runners.DataflowPipelineRunner.run(DataflowPipelineRunner.java:572) 在 com.google.cloud.dataflow.sdk.runners.DataflowPipelineRunner.run(DataflowPipelineRunner.java:190) 在 com.google.cloud.dataflow.sdk.Pipeline.run(Pipeline.java:180) 在 com.ri.gateway.storedata.CloudConnectPipeline.main(CloudConnectPipeline.java:146)
原因:com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden “代码”:403, “错误”:[ “域”:“全球”, "message" : "项目尚未启用 API。请使用 Google Developers Console 为您的项目激活 'dataflow' API。", “原因”:“禁止” ], "message" : "项目尚未启用 API。请使用 Google Developers Console 为您的项目激活 'dataflow' API。", “状态”:“PERMISSION_DENIED”
我不确定为什么会发生这种情况 - 因为 API 似乎通过 gcp 仪表板处于活动状态?
【问题讨论】:
您确定要针对同一 GCP 项目提交作业,因为您正在开发者控制台中检查已启用的 API?如果开发者控制台显示 Dataflow API 已启用,您应该不会收到此消息。我怀疑 Eclipse 中的--project
管道选项设置不正确。请注意项目 id、项目名称和项目编号之间的区别。设置--project
管道选项时应使用项目ID。
【参考方案1】:
请仔细检查您提交的 Cloud Dataflow 作业是否与您启用 Cloud API 的 Google Cloud Platform 项目相同。这与您从中启动作业的 Eclipse 项目不同。
如果 Google Developers Console 显示 Cloud Dataflow API 已启用,则很可能是 Eclipse 中的 --project
管道选项设置不正确。请注意项目 id、项目名称和项目编号之间的区别。请使用项目 ID,而不是其他 GCP 项目标识符。
最后,我们偶尔会发现通过您在上面发布的链接启用 API 没有生效。几乎总是,在解决问题后不久重试。
【讨论】:
以上是关于Dataflow API 不会在 GCP 中激活的主要内容,如果未能解决你的问题,请参考以下文章
包括自定义 PTransform 导致在 GCP 的 Dataflow 作业中找不到依赖项
在 GCP Dataflow 上的 python apache 光束中使用 scipy
GCP Dataflow 中的 RAM 磁盘 - 有可能吗?
请求的身份验证范围不足 - GCP 上的 Dataflow/Apache Beam