将参数传递给模板使用Dataflow API启动时

时间:2017-11-15 04:24:21

标签: java google-app-engine google-cloud-platform google-cloud-dataflow apache-beam

我必须在 App Engine数据流作业中启动使用Dataflow API时将参数传递给模板。

 com.google.api.services.dataflow.Dataflow.Projects.Locations.Templates.Launch request1 = 


    dataflowService.projects().locations().templates().launch(projectId,"us-central1",null);

                request1.setGcsPath(template);
                request1.setLocation("us-central1");
                request1.setValidateOnly(false);

                //Storing launch Response
                LaunchTemplateResponse response1 = request1.execute();

在我的代码中,我可以设置GCS路径,位置和有效性,但无法在云功能中设置参数。是使用java设置参数的任何方法。因为在Python中它可能所以我在Java中认为。

1 个答案:

答案 0 :(得分:1)

传递我使用的参数 - : LaunchTemplateParameters parameters = new LaunchTemplateParameters();

LaunchTemplateParameters parameters = new LaunchTemplateParameters();
    Map<String,String> map = new HashMap<String,String>();
            map.put("inputFile", "gs://xyz-bucket/Temp.txt");
parameters.setParameters(map);
        com.google.api.services.dataflow.Dataflow.Projects.Locations.Templates.Launch request1 = 
                        dataflowService.projects().locations().templates().launch(projectId,"us-central1",parameters);

            request1.setGcsPath(template);
            request1.setLocation("us-central1");
            request1.setValidateOnly(false);


            LaunchTemplateResponse response1 = request1.execute();