【问题标题】:Google dataflow created via google cloud deployment manager通过谷歌云部署管理器创建的谷歌数据流
【发布时间】:2020-09-07 21:50:33
【问题描述】:

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

是否可以有一个 yaml 文件来创建数据流作业?

【问题讨论】:

  • 能否请您包含一个包含您的部署配置的编辑内容的代码块,或者我假设您在网上某处找到的模板的链接?它将帮助我们确定您尝试在哪里插入“数据流”服务 - 您可能在该位置需要“数据流”以外的东西。

标签: google-cloud-platform google-cloud-dataflow


【解决方案1】:

我将根据@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

【讨论】:

  • 太棒了!知道如何停止或取消工作吗?如果我尝试删除部署,它实际上会尝试将模板作为新作业启动。我相信您可以通过将作业的 requestState 更新为 JOB_STATE_CANCELLED 来使用 REST API 实现这一点,但似乎部署管理器在调用“deployments delete my-deployment”时不知道如何做到这一点
【解决方案2】:

如果你有一个带有 OpenAPI 规范的 RESTful CRUD API,它可以用作类型提供者。 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

【讨论】:

  • 感谢那个anwser,你知道用谷歌云部署管理器创建数据流的完整架构吗?
  • 让我环顾四周,但我不是数据流 API 方面的专家
  • @Mihenandi-fukiWony 我已尝试在此答案中进行一些调整,以编辑有关如何为 Cloud Deployment Manager 设置 Dataflow 和示例 YAML 以启动 Dataflow 作业。但是,它被拒绝了,所以我要把它写下来作为一个新的答案。
猜你喜欢
  • 1970-01-01
  • 2022-11-21
  • 2021-01-04
  • 2022-06-30
  • 1970-01-01
  • 1970-01-01
  • 2017-11-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多