kennknowles opened a new issue, #18446:
URL: https://github.com/apache/beam/issues/18446

   0
   down vote
   favorite
   When i create a dataflow template, the characteristics of Runtime parameters 
are not persisted in the template file. At runtime, if i try to pass a value 
for this parameter, i take a 400 error
   
   I'm using Scio 0.3.2, scala 2.11.11 with apache beam (0.6).
   
   My parameters are the following :
   
   
   ```
   
   trait MyParameters extends PipelineOptions {
   
     def getInput: ValueProvider[String]
     def setInput(value:
   ValueProvider[String]): Unit
   }
   
   ```
   
   
   They are registred with this code
   
   
   ```
   
   val options = PipelineOptionsFactory.fromArgs(cmdlineArgs: 
_*).withValidation().as[XmlImportJobParameters](classOf[XmlImportJobParameters])
   PipelineOptionsFactory.register(classOf[XmlImportJobParameters])
   implicit
   val (sc, args) = ContextAndArgs(cmdlineArgs)
   
   ```
   
   
   To create the template i call sbt with this parameters :
   
   
   ```
   
   run-main jobs.XmlImportJob    --runner=DataflowRunner --project=MyProject  
--templateLocation=gs://myBucket/XmlImportTemplate
    --tempLocation=gs://myBucket/staging --instance=myInstance
   
   ```
   
   
   If i pass explicitly \--input, it becomes a StaticValue instead of 
RuntimeValue, and this time, i can see it in the template file.
   
   The template is called from a google function watching a bucket storage 
(inspired from 
https://shinesolutions.com/2017/03/23/triggering-dataflow-pipelines-with-cloud-functions/)
 :
   
   
   ```
   
   ...
   dataflow.projects.templates.create({
                   projectId: projectId,
                   resource:
   {
                       parameters: {
                           input: `gs://${file.bucket}/${file.name}`
   
                      },
                       jobName: jobs[job].name,
                       gcsPath: 'gs://MyBucket/MyTemplate'
   
                  }
               }
   ...
   
   ```
   
   
   The 400 error :
   
   
   
   ```
   
   problem running dataflow template, error was: { Error: (109c1c52dc52fec7): 
The workflow could not be
   created. Causes: (109c1c52dc52fb8e): Found unexpected parameters: ['input' 
(perhaps you meant 'runner')]
   at Request._callback 
(/user_code/node_modules/googleapis/node_modules/google-auth-library/lib/transporters.js:85:15)
   at Request.self.callback 
(/user_code/node_modules/googleapis/node_modules/request/request.js:188:22)
   at emitTwo (events.js:106:13) at Request.emit (events.js:191:7) at 
Request.<anonymous(/user_code/node_modules/googleapis/node_modules/request/request.js:1171:10)
   at emitOne (events.js:96:13) at Request.emit (events.js:188:7) at 
IncomingMessage.<anonymous> 
(/user_code/node_modules/googleapis/node_modules/request/request.js:1091:12)
   at IncomingMessage.g (events.js:291:16) at emitNone (events.js:91:20) code: 
400, errors: [ { message:
   '(109c1c52dc52fec7): The workflow could not be created. Causes: 
(109c1c52dc52fb8e): Found unexpected
   parameters: [\'input\' (perhaps you meant \'runner\')]', domain: 'global', 
reason: 'badRequest' } ]
   }
   
   ```
   
   
   
   
   
   Imported from Jira 
[BEAM-2470](https://issues.apache.org/jira/browse/BEAM-2470). Original Jira may 
contain additional context.
   Reported by: dgouyette.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to