运行Dataflow作业模板时无法从Pubsub读取

时间:2017-05-01 13:42:14

标签: google-cloud-dataflow

我正在使用“模板”功能在GCS中存储Dataflow作业模板,并在多个GCP项目中运行它。当我对Pubsub订阅进行硬编码时,这很好用,但是我需要能够在执行时设置它们 - 具体来说,我需要能够设置订阅所在的GCP项目ID,即设置{{1在执行时。

我尝试在CLI上使用ValueProvider:

projects/<project>/subscriptions/my-sub

我可以在监控UI中看到我在运行作业时正确设置了项目ID。

然后我使用NestedValueProvider将项目ID映射到我的各种订阅:

@Description("The GCP project to run the pipeline in")
def getProjectId: ValueProvider[String]
def setProjectId(value: ValueProvider[String])

val function = new SerializableFunction[String, String] { override def apply(value: String): String = s"projects/$value/subscriptions/my-sub" } NestedValueProvider.of[String, String](projectIdProvider, function) 方法接受ValueProvider,但是当我运行作业时,我在日志中收到此错误,并且没有消息被读取:

PubsubIO.Read.subscription

Stackdriver日志消息表明此错误发生在construct-template-5-05010625-b4a3-harness-03lg Update range task for 8042011276981323245 returned error status, will be retried as necessary: INVALID_ARGUMENT: Http(400) Bad Request

0 个答案:

没有答案