Tengo este código de Google Cloud Platform Dataflow Templates.

Deseo agregarle más funcionalidades, es decir, deseo agregar soporte para JavaScript UDF. Cuando intento compilar el archivo, uso esto:

mvn compile exec:java \
-Dexec.mainClass=com.google.cloud.teleport.templates.${PIPELINE_NAME} \
-Dexec.cleanupDaemonThreads=false \
-Dexec.args=" \
--project=${PROJECT_ID} \
--stagingLocation=gs://${PROJECT_ID}/dataflow/${PIPELINE_FOLDER}/staging \
--tempLocation=gs://${PROJECT_ID}/dataflow/${PIPELINE_FOLDER}/temp \
--runner=DataflowRunner \
--windowDuration=2m \
--numShards=1 \
--topic=projects/${PROJECT_ID}/topics/windowed-files \
--outputDirectory=gs://${PROJECT_ID}/temp/ \
--outputFilenamePrefix=windowed-file \
--outputFilenameSuffix=.txt"

Al compilar el archivo, aparece el siguiente error:

An exception occured while executing the Java class. Class interface com.google.cloud.teleport.templates.PubsubToText$Options missing a property named 'topic'. -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.6.0:java (default-cli) on project google-cloud-teleport-java: An exception occured while executing the Java class. Class interface com.google.cloud.teleport.templates.PubsubToText$Options missing a property named 'topic'.

Sin embargo, pasé la marca --topic con los valores apropiados conectados.

-1
tHappy 16 oct. 2018 a las 08:37

2 respuestas

La mejor respuesta

ejemplo en la parte superior es incorrecto. Tienes que pasar --inputTopic en lugar de --topic. Puede ver esto en el código donde se define ValueProvider:

@Description("The Cloud Pub/Sub topic to read from.")
@Required
ValueProvider<String> getInputTopic();
void setInputTopic(ValueProvider<String> value);

También puede ejecutar la plantilla desde la interfaz de usuario de Console y los detalles del trabajo mostrarán que La opción es de hecho inputTopic:

enter image description here

2
Guillem Xercavins 16 oct. 2018 a las 11:12

El ejemplo de invocación en javadoc ahora debería reflejar el parámetro de entrada correcto (--inputTopic) aquí.

1
Sameer Abhyankar 15 nov. 2018 a las 17:11