Google-Datenfluss erstellt über Google Cloud Deployment Manager
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
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
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