Good day, Ashok,

I was able to submit a Dataflow job using this code snippet.  Change the
bracketed <> values with what makes sense to your Google Cloud
environment.  Could you let me know if this works for you?

Best,

Damon

params := &dataflow.LaunchTemplateParameters{
   Environment: &dataflow.RuntimeEnvironment{
      Network:             "<network>",
      ServiceAccountEmail:
"<service-account-id>@<google-cloud-project-id>.iam.gserviceaccount.com",
      Subnetwork:          "regions/<region>/subnetworks/<subnetwork>",
   },
   JobName: "<job-name>",
   Parameters: map[string]string{
      "inputFile": "gs://dataflow-samples/shakespeare/kinglear.txt",
      "output":    "gs://<bucket>/wordcount/output",
   },
}


resp, err := svc.Projects.Templates.Launch("<project>",
params).GcsPath("gs://dataflow-templates/latest/Word_Count").Do()

if err != nil {

// do something with err

}


On Wed, Feb 15, 2023 at 7:04 AM Bruno Volpato via dev <dev@beam.apache.org>
wrote:

> Hello,
>
> The most similar to the mentioned Python APIs is through
> https://github.com/googleapis/google-api-go-client.
>
> There are some docs that include Go examples:
> - Flex Templates:
> https://cloud.google.com/dataflow/docs/samples/dataflow-v1beta3-generated-FlexTemplatesService-LaunchFlexTemplate-sync
> - Classic Templates:
> https://cloud.google.com/dataflow/docs/samples/dataflow-v1beta3-generated-TemplatesService-LaunchTemplate-sync
>
> Best,
> Bruno
>
>
>
> On Wed, Feb 15, 2023 at 9:29 AM Jack McCluskey via user <
> u...@beam.apache.org> wrote:
>
>> As far as I know, Shivam's solution is the correct one for launching a
>> template from Go. You're just routing your calls through a
>> Dataflow-specific API library rather than going through the API discovery
>> service.
>>
>> On Wed, Feb 15, 2023 at 9:16 AM Kerry Donny-Clark <kerr...@google.com>
>> wrote:
>>
>>> Jack added the Go templates capabilities, he should be able to help you
>>> out.
>>>
>>> On Wed, Feb 15, 2023, 12:37 AM Ashok KS <ashok7...@gmail.com> wrote:
>>>
>>>> Hi Shivam,
>>>>
>>>> Thanks a lot for your response. I did check the http request. But I
>>>> wanted to see if I can use the Google API client Library.
>>>> The docs show a Python example for it shown below. I wanted to know if
>>>> there is something similar with Go.
>>>>
>>>> from googleapiclient.discovery import build
>>>>
>>>> # project = 'your-gcp-project'
>>>> # job = 'unique-job-name'
>>>> # template = 'gs://dataflow-templates/latest/Word_Count'
>>>> # parameters = {
>>>> #     'inputFile': 'gs://dataflow-samples/shakespeare/kinglear.txt',
>>>> #     'output': 'gs://<your-gcs-bucket>/wordcount/outputs',
>>>> # }
>>>>
>>>> dataflow = build('dataflow', 'v1b3')
>>>> request = dataflow.projects().templates().launch(
>>>>     projectId=project,
>>>>     gcsPath=template,
>>>>     body={
>>>>         'jobName': job,
>>>>         'parameters': parameters,
>>>>     }
>>>> )
>>>>
>>>> response
>>>>
>>>>

Reply via email to