Google 通过 google 云部署管理器创建的数据流

Google dataflow created via google cloud deployment manager

我正在尝试通过部署管理器使用模板 Pub/Sub 创建数据流作业到 BigQuery。 问题是在 运行 gcloud deployment-manager types list 命令后我没有看到任何数据流服务。

是否可以使用 yaml 文件来创建数据流作业?

如果你有一个 RESTful CRUD API 与 OpenAPI 规范,它可以用作类型提供程序。 docs

默认情况下未注册数据流提供程序,您必须自己注册。 documentation

注册数据流运行:

gcloud deployment-manager type-providers create dataflow 
 --descriptor-url='https://dataflow.googleapis.com/$discovery/rest?version=v1b3'

您可以通过以下方式查看数据流可用的所有类型:

gcloud deployment-manager types list --provider dataflow

我将根据@lukaszberwid 的回答,为您提供如何为 Cloud Deployment Manager 设置 Dataflow 的工作示例。

首先您需要一个 options.yaml 文件来设置 auth(此外您可能需要在您的环境中设置您的服务帐户):

options:
  inputMappings:
  - fieldName: Authorization
    location: HEADER
    value: '$.concat("Bearer ", $.googleOauth2AccessToken())'

然后,注册数据流运行:

gcloud beta deployment-manager type-providers create dataflow \
    --descriptor-url='https://dataflow.googleapis.com/$discovery/rest?version=v1b3' \
    --api-options-file=options.yaml

接下来您可以找到一个示例 resources.yaml,它可以从开始 guide:

启动 WordCount 模板
resources:
  - name: "datafow-job"
    type: "[PROJECT-ID]/dataflow:dataflow.projects.locations.templates.launch"
    properties:
      projectId: [PROJECT-ID]
      location: us-central1
      gcsPath: "gs://dataflow-templates-us-central1/latest/Word_Count"
      jobName: testing-job
      environment:
        bypassTempDirValidation: false
        tempLocation: "gs://[BUCKET-NAME]/dataflow/tmp"
        ipConfiguration: "WORKER_IP_UNSPECIFIED"
        additionalExperiments: []
      parameters:
        inputFile: "gs://dataflow-samples/shakespeare/kinglear.txt"
        output: "gs://[BUCKET-NAME]/dataflow/output/my_output"

给运行吧:

gcloud deployment-manager deployments create my-deployment \
    --config resources.yaml