Jobeinstellungen mit Dataflow Config Store verwalten

Mit Dataflow Config Store können Sie Jobeinstellungen für Resource Manager-Ressourcen konfigurieren und verwalten, einschließlich Google Cloud Organisationen, Ordnern und Projekten.

Mit dem Dataflow Config Store können Sie Konfigurationsrichtlinien im großen Maßstab festlegen, ohne den Code einzelner Pipelines, Jobvorlagen oder Bereitstellungsskripts ändern zu müssen. Sie können beispielsweise einen Standard-Launcher-Maschinentyp für eine gesamte Organisation oder einen gesamten Ordner festlegen, um Engpässe bei Compute Engine-Maschinentypen zu vermeiden, Maschinenmigrationen zu erleichtern oder die Ressourcengröße zu standardisieren.

Unterstützte Einstellungen und Einschränkungen

Dataflow Config Store unterstützt die folgenden Einstellungen:

Für den Dataflow Config Store gelten die folgenden Einschränkungen:

  • Die Einstellung default_launcher_machine_type gilt nur für die Vorlagenstarter-VM für Jobs mit flexiblen Vorlagen. Worker-VMs oder klassische Vorlagenjobs sind davon nicht betroffen. Informationen zum Konfigurieren von Worker-VM-Maschinentypen finden Sie unter Dataflow-Worker-VMs konfigurieren.
  • Wenn Sie ein Projekt als Ziel festlegen, müssen Sie die numerische Projektnummer angeben. Projekt-IDs werden nicht unterstützt.
  • Config Store-Einstellungen sind regional und gelten nur für Jobs, die in derselben Dataflow-Region ausgeführt werden.

Rangfolge der Auflösung festlegen

Wenn ein Dataflow-Job gestartet wird, werden die Einstellungen mithilfe eines hierarchischen Prioritätsmodells aufgelöst, bei dem die spezifischste Konfiguration Vorrang hat:

  1. Konfiguration auf Jobebene: Einstellungen, die explizit beim Einreichen des Jobs übergeben werden (z. B. über Pipelineoptionen oder Ausführungsparameter).
  2. Einstellung auf Projektebene: Eine Config Store-Einstellung, die direkt im Projekt konfiguriert wird, in dem der Job ausgeführt wird.
  3. Einstellung auf Ordner- oder Organisationsebene: Eine Config Store-Einstellung, die für übergeordnete Ressourcen in der Resource Manager-Hierarchie konfiguriert ist. Der dem Projekt am nächsten gelegene übergeordnete Ordner hat Vorrang vor höheren Ordnern und der Organisation.
  4. Dataflow-dienstweiter Standard: Integrierte Dienststandards, die verwendet werden, wenn auf Job- oder Resource Manager-Hierarchieebene keine Überschreibung definiert ist.

Hinweis

Bevor Sie Config Store-Einstellungen verwalten oder prüfen, müssen Sie die erforderlichen IAM-Berechtigungen (Identity and Access Management) für das Zielprojekt, den Zielordner oder die Zielorganisation haben.

Erforderliche Berechtigungen

Vorgang Erforderliche Berechtigung
Einstellung erstellen oder aktualisieren dataflow.configStoreSettings.create
Explizit konfigurierte Einstellung ansehen dataflow.configStoreSettings.get
Einstellungen für eine Ressource auflisten dataflow.configStoreSettings.list
Effektive Einstellung auflösen dataflow.configStoreSettings.resolve
Überschreibung einer Einstellung löschen dataflow.configStoreSettings.delete

Vordefinierte Rollen

Sie können die folgenden vordefinierten Rollen für das Zielprojekt, den Zielordner oder die Zielorganisation zuweisen oder benutzerdefinierte Rollen mit den erforderlichen Berechtigungen erstellen:

  • Dataflow-Administrator (roles/dataflow.admin): Enthält Berechtigungen zum Erstellen, Abrufen, Auflisten, Auflösen und Löschen von Config Store-Einstellungen (dataflow.configStoreSettings.*).
  • Dataflow-Entwickler (roles/dataflow.developer): Umfasst Lesezugriff zum Abrufen, Auflisten und Auflösen von Config Store-Einstellungen.
  • Dataflow-Betrachter (roles/dataflow.viewer): Umfasst Lesezugriff zum Abrufen, Auflisten und Auflösen von Config Store-Einstellungen.

Weitere Informationen finden Sie unter Zugriffssteuerung mit IAM.

Einstellungen mit der gcloud CLI verwalten

Sie können Config Store-Einstellungen mit der gcloud CLI verwalten.

Zielressourcenbereich angeben

Wenn Sie gcloud dataflow config-store-settings-Befehle verwenden, geben Sie den Zielressourcenbereich mit einem der folgenden sich gegenseitig ausschließenden Flags an. Kombinieren Sie sie nicht im selben Befehl.

  • Projekt: --project=PROJECT_NUMBER (Verwenden Sie die numerische Projektnummer von Google Cloud , nicht die Projekt-ID.)
  • Ordner: --folder=FOLDER_ID (Ihre numerische Ordner-ID)
  • Organisation: --organization=ORGANIZATION_ID (Ihre numerische Organisations-ID)

Config Store-Einstellung erstellen oder aktualisieren

Führen Sie den Befehl gcloud dataflow config-store-settings create aus, um eine Einstellung für ein Projekt, einen Ordner oder eine Organisation zu erstellen. Wenn die Einstellung bereits für die Zielressource vorhanden ist, wird der vorhandene Einstellungswert überschrieben, wenn Sie den Befehl create noch einmal mit einem anderen --value ausführen:

gcloud dataflow config-store-settings create SETTING_ID \
    --project=PROJECT_NUMBER \
    --location=REGION \
    --value="SETTING_VALUE"

Ersetzen Sie Folgendes:

  • SETTING_ID: die ID der zu konfigurierenden unterstützten Einstellung, z. B. default_launcher_machine_type.
  • PROJECT_NUMBER: Ihre numerische Google Cloud-Projektnummer. Wenn Sie einen Ordner oder eine Organisation anstelle eines Projekts als Ziel festlegen möchten, ersetzen Sie --project=PROJECT_NUMBER durch --folder=FOLDER_ID oder --organization=ORGANIZATION_ID.
  • REGION: die Dataflow-Region, für die die Einstellung gilt, z. B. us-central1.
  • SETTING_VALUE: der Wert für die Einstellung, z. B. e2-standard-2 für default_launcher_machine_type.

Config Store-Einstellung abrufen

Führen Sie den Befehl gcloud dataflow config-store-settings describe aus, um eine Einstellung abzurufen, die direkt für eine Ressource konfiguriert ist:

gcloud dataflow config-store-settings describe SETTING_ID \
    --project=PROJECT_NUMBER \
    --location=REGION

Ersetzen Sie Folgendes:

  • SETTING_ID: die ID der abzurufenden unterstützten Einstellung, z. B. default_launcher_machine_type.
  • PROJECT_NUMBER: Ihre numerische Google Cloud-Projektnummer. Wenn Sie einen Ordner oder eine Organisation anstelle eines Projekts als Ziel festlegen möchten, ersetzen Sie --project=PROJECT_NUMBER durch --folder=FOLDER_ID oder --organization=ORGANIZATION_ID.
  • REGION: die Dataflow-Region der Einstellung, z. B. us-central1.

Config Store-Einstellungen auflisten

Führen Sie den Befehl gcloud dataflow config-store-settings list aus, um alle Config Store-Einstellungen aufzulisten, die direkt für eine Ressource konfiguriert sind:

gcloud dataflow config-store-settings list \
    --project=PROJECT_NUMBER \
    --location=REGION \
    --page-size=10

Ersetzen Sie Folgendes:

  • PROJECT_NUMBER: Ihre numerische Google Cloud-Projektnummer. Wenn Sie einen Ordner oder eine Organisation anstelle eines Projekts als Ziel festlegen möchten, ersetzen Sie --project=PROJECT_NUMBER durch --folder=FOLDER_ID oder --organization=ORGANIZATION_ID.
  • REGION: die Dataflow-Region, aus der Einstellungen aufgelistet werden sollen, z. B. us-central1.

Effektive Einstellung auflösen

Führen Sie den Befehl gcloud dataflow config-store-settings resolve aus, um zu ermitteln, welcher Einstellungswert für Jobs gilt, die innerhalb einer Ressourcenhierarchie gestartet wurden. Dieser Befehl dient als Probelauf, um zu bestätigen, welcher Einstellungswert von einem Job verwendet wird:

gcloud dataflow config-store-settings resolve SETTING_ID \
    --project=PROJECT_NUMBER \
    --location=REGION

Ersetzen Sie Folgendes:

  • SETTING_ID: die ID der unterstützten Einstellung, die aufgelöst werden soll, z. B. default_launcher_machine_type.
  • PROJECT_NUMBER: Ihre numerische Google Cloud-Projektnummer. Wenn Sie einen Ordner oder eine Organisation anstelle eines Projekts als Ziel festlegen möchten, ersetzen Sie --project=PROJECT_NUMBER durch --folder=FOLDER_ID oder --organization=ORGANIZATION_ID.
  • REGION: die Dataflow-Region, in der der Job ausgeführt wird, z. B. us-central1.

Die Ausgabe gibt die effektive setting zusammen mit allen Kandidaten-choices in der Hierarchie zurück:

setting:
  name: projects/123456789012/locations/us-central1/configStoreSettings/default_launcher_machine_type
  value:
    stringValue: e2-standard-2
choices:
- name: projects/123456789012/locations/us-central1/configStoreSettings/default_launcher_machine_type
  value:
    stringValue: e2-standard-2
- name: organizations/987654321098/locations/us-central1/configStoreSettings/default_launcher_machine_type
  value:
    stringValue: n1-standard-1

In diesem Beispiel definieren sowohl das Projekt als auch die Organisation einen Wert. Die spezifischere Einstellung auf Projektebene (e2-standard-2) hat Vorrang.

Config Store-Einstellung löschen

Führen Sie den Befehl gcloud dataflow config-store-settings delete aus, um eine Einstellungsüberschreibung aus einer Ressource zu entfernen:

gcloud dataflow config-store-settings delete SETTING_ID \
    --project=PROJECT_NUMBER \
    --location=REGION

Ersetzen Sie Folgendes:

  • SETTING_ID: die ID der zu löschenden unterstützten Einstellung, z. B. default_launcher_machine_type.
  • PROJECT_NUMBER: Ihre numerische Google Cloud-Projektnummer. Wenn Sie einen Ordner oder eine Organisation anstelle eines Projekts als Ziel festlegen möchten, ersetzen Sie --project=PROJECT_NUMBER durch --folder=FOLDER_ID oder --organization=ORGANIZATION_ID.
  • REGION: die Dataflow-Region der Einstellung, z. B. us-central1.

Wenn Sie eine Einstellung löschen, greift Dataflow auf alle Einstellungen zurück, die in übergeordneten Ordnern oder Organisationen konfiguriert sind, oder auf dienstweite Standardeinstellungen.

Fehler im Config Store beheben

In der folgenden Liste wird beschrieben, wie Sie häufige Config Store-Fehler beheben:

  • INVALID_ARGUMENT (HTTP 400): Der Einstellungswert wird nicht unterstützt (z. B. ein ungültiger Compute Engine-Maschinentyp), --project gibt eine Projekt-ID anstelle einer numerischen Projektnummer an oder --location ist keine gültige Dataflow-Region.
  • NOT_FOUND (HTTP 404): Die Einstellung wurde nicht direkt für die angegebene Ressource erstellt. Führen Sie gcloud dataflow config-store-settings list aus, um die Einstellungen für die Ressource aufzurufen, oder resolve, um die übernommenen Einstellungen zu prüfen.
  • PERMISSION_DENIED (HTTP 403): Der Aufrufer hat nicht die erforderlichen IAM-Berechtigungen im Zielprojekt, -ordner oder -organisationsbereich.
  • ABORTED (HTTP 409): Die Einstellung wurde während Ihrer Anfrage durch eine gleichzeitige Aktualisierung geändert. Führen Sie den Befehl noch einmal aus.
  • Job schlägt nach dem Erstellen einer Einstellung fehl: Beim Erstellen einer Config Store-Einstellung wird das Format der Einstellung validiert, aber nicht die Verfügbarkeit regionaler Ressourcen. Ein Job kann beim Start trotzdem fehlschlagen, wenn die konfigurierte Ressource nicht verfügbar ist. Beispielsweise wird ein Maschinentyp in der Zielregion möglicherweise nicht unterstützt oder in der Zone herrscht ein Ressourcenmangel. Aktualisieren Sie die Einstellung, um einen verfügbaren Maschinentyp zu verwenden, um dieses Problem zu beheben. Weitere Informationen finden Sie unter Verfügbare Regionen und Zonen und Launcher-VM-Ressourcenerschöpfung.

Nächste Schritte