Google-Datenfluss erstellt über Google Cloud Deployment Manager

Sep 01 2020

Ich versuche, einen Datenflussjob mit der Vorlage Pub / Sub für BigQuery über den Deployment Manager zu erstellen. Das Problem ist, dass ich nach dem Ausführen des gcloud deployment-manager types listBefehls keinen Datenflussdienst sehe .

Ist es möglich, eine Yaml-Datei zum Erstellen eines Datenflussjobs zu haben?

Antworten

2 S.Tyr Sep 07 2020 at 13:44

Ich werde Ihnen anhand der Antwort von @lukaszberwid ein Arbeitsbeispiel zum Einrichten von Dataflow für Cloud Deployment Manager zur Verfügung stellen.

Zuerst benötigen Sie eine options.yamlDatei, um die Authentifizierung einzurichten (zusätzlich müssen Sie möglicherweise Ihr Dienstkonto in Ihrer Umgebung einrichten):

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

So registrieren Sie den Datenflusslauf:

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

Als Nächstes finden Sie ein Beispiel zum resources.yamlStarten der WordCountVorlage in der Kurzanleitung :

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"

Um es auszuführen:

gcloud deployment-manager deployments create my-deployment \
    --config resources.yaml
lukaszberwid Sep 01 2020 at 11:44

Wenn Sie über eine RESTful CRUD-API mit OpenAPI-Spezifikation verfügen, kann diese als Typanbieter verwendet werden. docs

Der Datenflussanbieter ist standardmäßig nicht registriert, und Sie müssen dies selbst registrieren. Dokumentation

So registrieren Sie den Datenflusslauf:

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

Sie können alle für den Datenfluss verfügbaren Typen anzeigen mit:

gcloud deployment-manager types list --provider dataflow