从 Go 应用程序的数据流模板创建作业

use*_*121 1 go google-cloud-dataflow

我正在尝试通过 Go 应用程序从现有模板启动数据流作业。

到目前为止,我已经引入google.golang.org/api/dataflow/v1b3并创建了一个CreateJobFromTemplateRequest包含工作信息的文件。

现在,我如何使用 Compute Engine 中的内置服务帐号凭据执行该请求?

use*_*121 5

仅当存在为您调用的服务开发的Go 的 Google 客户端库时,才建议使用自动生成的 Go 的 Google API 。目前还没有适用于 Dataflow 的客户端库。

要使用默认凭据从 Go 应用程序启动 Dataflow 模板:

ctx := context.Background()
oauthClient, err := google.DefaultClient(ctx, dataflow.CloudPlatformScope)

dataflowService, err := dataflow.New(oauthClient)

if err != nil {
  panic(err)
}

templateRequest := dataflow.CreateJobFromTemplateRequest{
  GcsPath: "gcs path to template here",
  JobName: "choose a unique job name here",
  Parameters: map[string]string{
    "parameters": "for job",
  },
}

result, err := dataflowService.Projects.Templates.Create("project id", &templateRequest).Do()

if err != nil {
  panic(err)
}
Run Code Online (Sandbox Code Playgroud)