Cloud Composer-Umgebungen erstellen

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Auf dieser Seite wird erläutert, wie Sie eine Cloud Composer-Umgebung erstellen.

Hinweise

  • Wenn Sie eine Umgebung mit Terraform erstellen, muss das von Terraform verwendete Dienstkonto eine Rolle mit aktivierter composer.environments.create-Berechtigung haben.

    Weitere Informationen zum Dienstkonto für Terraform finden Sie in der Referenz zur Google-Anbieterkonfiguration.

    Weitere Informationen zum Erstellen einer Cloud Composer-Umgebung mit Terraform finden Sie in der Terraform-Dokumentation.

    Weitere Informationen zu zusätzlichen Parametern finden Sie in der Referenz zu Terraform-Argumenten.

  • Private IP-Adressen: Für das Erstellen einer Umgebung mit privaten IP-Adressen gelten bestimmte Netzwerk- und Peering-Anforderungen. Weitere Informationen finden Sie unter Private IP-Adresse konfigurieren.

  • Freigegebene VPC: Für die Verwendung der freigegebenen VPC mit Cloud Composer gelten bestimmte Netzwerkanforderungen. Informationen dazu finden Sie unter Freigegebene VPC konfigurieren.

  • VPC-SC: Informationen zum Bereitstellen von Cloud Composer-Umgebungen in einem Sicherheitsperimeter finden Sie unter VPC-SC konfigurieren. Bei der Verwendung mit Cloud Composer gelten für VPC Service Controls mehrere bekannte Einschränkungen.

Schritt 1: Grundlegende Einstellungen

Mit diesem Schritt wird eine Cloud Composer-Umgebung mit Standardeinstellungen an der angegebenen Position.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Umgebung erstellen auf.

    Zur Seite „Umgebung erstellen“

  2. Geben Sie im Feld Name einen Namen für die Umgebung ein.

    Der Name muss mit einem Kleinbuchstaben beginnen, gefolgt von bis zu 62 Kleinbuchstaben, Ziffern oder Bindestrichen. Das letzte Zeichen darf kein Bindestrich sein. Anhand des Umgebungsnamens werden Unterkomponenten für die Umgebung erstellt. Daher müssen Sie einen Namen angeben, der auch als Cloud Storage-Bucket-Name gültig ist. Eine Liste der Einschränkungen finden Sie in den Benennungsrichtlinien für Buckets.

  3. Wählen Sie in der Drop-down-Liste Speicherort einen Speicherort für Ihre Umgebung aus.

    Ein Standort ist die Region, in der sich die Umgebung befindet.

  4. Wählen Sie in der Drop-down-Liste Image-Version ein Cloud Composer-Image mit der erforderlichen Version von Airflow aus.

gcloud

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version IMAGE_VERSION

Ersetzen Sie:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.

    Der Name muss mit einem Kleinbuchstaben beginnen, gefolgt von bis zu 62 Kleinbuchstaben, Ziffern oder Bindestrichen. Das letzte Zeichen darf kein Bindestrich sein. Anhand des Umgebungsnamens werden Unterkomponenten für die Umgebung erstellt. Daher müssen Sie einen Namen angeben, der auch als Cloud Storage-Bucket-Name gültig ist. Eine Liste der Einschränkungen finden Sie in den Benennungsrichtlinien für Buckets.

  • LOCATION durch die Region für die Umgebung.

    Ein Standort ist die Region, in der sich die Umgebung befindet.

  • IMAGE_VERSION durch den Namen eines Cloud Composer-Images.

Beispiel:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.9.7-airflow-2.9.3

API

Erstellen Sie eine API-Anfrage environments.create. Geben Sie die Konfiguration in der Ressource Environment an.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "softwareConfig": {
      "imageVersion": "IMAGE_VERSION"
    }
  }
}

Ersetzen Sie:

  • PROJECT_ID durch die Projekt-ID.

  • LOCATION durch die Region für die Umgebung.

    Ein Standort ist die Region, in der sich die Umgebung befindet.

  • ENVIRONMENT_NAME durch den Namen der Umgebung.

    Der Name muss mit einem Kleinbuchstaben beginnen, gefolgt von bis zu 62 Kleinbuchstaben, Ziffern oder Bindestrichen. Das letzte Zeichen darf kein Bindestrich sein. Anhand des Umgebungsnamens werden Unterkomponenten für die Umgebung erstellt. Daher müssen Sie einen Namen angeben, der auch als Cloud Storage-Bucket-Name gültig ist. Eine Liste der Einschränkungen finden Sie in den Benennungsrichtlinien für Buckets.

  • IMAGE_VERSION durch den Namen eines Cloud Composer-Images.

Beispiel:

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "softwareConfig": {
      "imageVersion": "composer-2.9.7-airflow-2.9.3"
    }
  }
}

Terraform

Wenn Sie eine Umgebung mit Standardparametern an einem bestimmten Speicherort erstellen möchten, fügen Sie der Terraform-Konfiguration den folgenden Ressourcenblock hinzu und führen Sie terraform apply aus.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    software_config {
      image_version = "IMAGE_VERSION"
    }
  }
}

Ersetzen Sie:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.

    Der Name muss mit einem Kleinbuchstaben beginnen, gefolgt von bis zu 62 Kleinbuchstaben, Ziffern oder Bindestrichen. Das letzte Zeichen darf kein Bindestrich sein. Anhand des Umgebungsnamens werden Unterkomponenten für die Umgebung erstellt. Daher müssen Sie einen Namen angeben, der auch als Cloud Storage-Bucket-Name gültig ist. Eine Liste der Einschränkungen finden Sie in den Benennungsrichtlinien für Buckets.

  • LOCATION durch die Region für die Umgebung.

    Ein Standort ist die Region, in der sich die Umgebung befindet.

  • IMAGE_VERSION durch den Namen eines Cloud Composer-Images.

Beispiel:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {
    software_config {
      image_version = "composer-2.9.7-airflow-2.9.3"
    }
  }
}

Schritt 2: Optional: Wählen Sie ein Dienstkonto für Ihre Umgebung aus.

Cloud Composer bindet dieses Dienstkonto an den Kubernetes-Dienst Ihrer Umgebung. Knoten im Cluster Ihrer Umgebung werden als Kubernetes-Dienstkonto ausgeführt und verwenden die Bindungen, um auf Ressourcen in Ihrem Google Cloud-Projekt zuzugreifen, z. B. DAG-Definitionsdateien im Bucket Ihrer Umgebung.

Standardmäßig verwenden Cloud Composer-Umgebungen das Compute Engine-Standarddienstkonto. Wir empfehlen, ein nutzerverwaltetes Dienstkonto für Cloud Composer-Umgebungen einzurichten.

verwendet wird.

Sie können das Dienstkonto Ihrer Umgebung später nicht mehr ändern.

Console

Wählen Sie auf der Seite Umgebung erstellen in der Drop-down-Liste Dienstkonto ein Dienstkonto für Ihre Umgebung aus.

gcloud

Beim Erstellen einer Umgebung gibt --service-account das Dienstkonto für Ihre Umgebung an.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.9.7-airflow-2.9.3 \
    --service-account "SERVICE_ACCOUNT"

Ersetzen Sie:

  • SERVICE_ACCOUNT durch das Dienstkonto für Ihre Umgebung.

Beispiel:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.9.7-airflow-2.9.3 \
    --service-account "example-account@example-project.iam.gserviceaccount.com"

API

Wenn Sie eine Umgebung erstellen, geben Sie im Feld Environment (Umgebung) > EnvironmentConfig-Ressource Geben Sie ein Dienstkonto für Ihre Umgebung an.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "nodeConfig": {
      "serviceAccount": "SERVICE_ACCOUNT"
    }
}

Ersetzen Sie:

  • SERVICE_ACCOUNT durch das Dienstkonto für Ihre Umgebung.

Beispiel:


// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "nodeConfig": {
      "serviceAccount": "example-account@example-project.iam.gserviceaccount.com"
    }
  }
}

Terraform

Verwenden Sie beim Erstellen einer Umgebung das Feld service_account im Block node_config.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    node_config {
      service_account = "SERVICE_ACCOUNT"
    }
  }
}

Ersetzen Sie:

  • SERVICE_ACCOUNT durch das Dienstkonto für Ihre Umgebung.

Beispiel:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {
    node_config {
      service_account = "example-account@example-project.iam.gserviceaccount.com"
    }
  }
}

Schritt 3: Erforderliche Berechtigungen für das Cloud Composer-Dienstkonto gewähren

Wenn Sie die Cloud Composer API in Ihrem Projekt aktivieren, wird in Ihrem Projekt das Konto Composer-Dienst-Agent erstellt. Cloud Composer verwendet dieses Konto, um Vorgänge in Ihrem Google Cloud-Projekt

Die Rolle Dienst-Agent-Erweiterung für Cloud Composer v2 API bietet zusätzliche Berechtigungen für das Cloud Composer-Dienst-Agent-Konto. Diese Rolle ist nicht automatisch gewährt wird. Sie müssen sie manuell erteilen.

Console

Wenn Sie eine Umgebung in Ihrem Projekt erstellen, Der Cloud Composer-Dienst-Agent hat nicht die erforderlichen Berechtigungen für das Dienstkonto der Umgebung. a Erforderliche Berechtigungen für Cloud Composer-Dienstkonto gewähren angezeigt wird.

Sie fügen das Cloud Composer-Dienst-Agent-Konto als neues Hauptkonto zum Dienstkonto Ihrer Umgebung hinzu und gewähren ihm die Rolle Cloud Composer v2 API-Dienst-Agent-Erweiterung.

Prüfen Sie, ob Sie das vorgesehene Dienstkonto für Ihre Umgebung verwenden, und klicken Sie auf Zugewähren.

gcloud

Sie fügen das Cloud Composer-Dienst-Agent-Konto als neues Hauptkonto hinzu im Dienstkonto Ihrer Umgebung und gewähren Sie die Cloud Composer v2 API Dienst-Agent-Erweiterung.

gcloud iam service-accounts add-iam-policy-binding \
    SERVICE_ACCOUNT \
    --member serviceAccount:service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com \
    --role roles/composer.ServiceAgentV2Ext

Ersetzen Sie:

  • SERVICE_ACCOUNT durch das Dienstkonto für Ihre Umgebung.
  • PROJECT_NUMBER durch die Projektnummer.

Beispiel:

gcloud iam service-accounts add-iam-policy-binding \
    example-account@example-project.iam.gserviceaccount.com \
    --member serviceAccount:service-00000000000@cloudcomposer-accounts.iam.gserviceaccount.com \
    --role roles/composer.ServiceAgentV2Ext

API

Um die Rolle zuzuweisen, müssen Sie die vorhandene Zulassungsrichtlinie mit dem Muster „Read-Modify-Write“ (Lesen-Ändern-Schreiben) ändern:

  1. Lesen Sie die vorhandene „allow“-Richtlinie für das Dienstkonto Ihrer Umgebung.
  2. Ändern Sie sie so, dass sie für den Cloud Composer-Dienst-Agent die Rolle roles/composer.ServiceAgentV2Ext enthält.
  3. Schreiben Sie die vorhandene Zulassungsrichtlinie um.

Weitere Informationen finden Sie unter Zugriff programmatisch steuern.

{
  "role": "roles/composer.ServiceAgentV2Ext",
  "members": [
    "serviceAccount:service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com"
  ]
}

Ersetzen Sie:

Beispiel:

{
  "role": "roles/composer.ServiceAgentV2Ext",
  "members": [
    "serviceAccount:service-00000000000@cloudcomposer-accounts.iam.gserviceaccount.com"
  ]
}

Terraform

Fügen Sie der Zulassungsrichtlinie des Dienstkontos Ihrer Umgebung eine neue Rollenbindung hinzu.

Sie fügen das Cloud Composer-Dienst-Agent-Konto als neues Hauptkonto zum Dienstkonto Ihrer Umgebung hinzu und gewähren ihm die Rolle Cloud Composer v2 API-Dienst-Agent-Erweiterung.

Verwenden Sie das folgende Beispiel nur, wenn Sie Terraform zum Definieren der Richtlinie für zulässige Dienstkonten Ihrer Umgebung verwenden. Fügen Sie diese Bindung stattdessen mithilfe anderer Methoden hinzu.

resource "google_service_account_iam_member" "custom_service_account" {
  provider = google-beta
  service_account_id = "SERVICE_ACCOUNT"
  role = "roles/composer.ServiceAgentV2Ext"
  member = "serviceAccount:service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com"
}

Ersetzen Sie:

  • SERVICE_ACCOUNT durch das Dienstkonto für Ihre Umgebung.
  • PROJECT_NUMBER durch die Projektnummer.

Beispiel:

resource "google_service_account_iam_member" "custom_service_account" {
  provider = google-beta
  service_account_id = "example-account@example-project.iam.gserviceaccount.com"
  role = "roles/composer.ServiceAgentV2Ext"
  member = "serviceAccount:service-00000000000@cloudcomposer-accounts.iam.gserviceaccount.com"
}

Schritt 4: Optional: Parameter für die Umgebungsskalierung und Leistung konfigurieren

Wählen Sie die Umgebungsgröße und die Arbeitslastkonfiguration aus, um die Skalierungs- und Leistungskonfiguration für Ihre Umgebung anzugeben.

Sie können alle Leistungs- und Skalierungsparameter ändern, nachdem Sie eine Umgebung erstellt haben.

Die folgenden Parameter steuern die Skalierung und Leistung:

  • Umgebungsgröße Steuert die Leistungsparameter der verwalteten Cloud Composer-Infrastruktur, die Airflow enthält Datenbank. Wenn Sie eine große Anzahl von DAGs und Aufgaben mit höherer Infrastrukturleistung ausführen möchten, sollten Sie für die Umgebungsgröße einen größeren Wert auswählen. Mit einer größeren Umgebung können beispielsweise mehr Airflow-Aufgabenprotokolleinträge mit minimaler Verzögerung verarbeitet werden.

  • Arbeitslastkonfiguration. Steuert den Umfang und die Leistung Ihrer Umgebungskomponenten, die in einem GKE-Cluster ausgeführt werden: Airflow Planer, Airflow-Webserver und Airflow-Workern.

    • Der Airflow-Planer parst DAG-Dateien, plant DAG-Ausführungen anhand des Zeitplanintervalls und stellt Aufgaben zur Ausführung durch Airflow-Worker in die Warteschlange.

      In Ihrer Umgebung können mehrere Airflow-Planer gleichzeitig ausgeführt werden. Mit mehreren Planern lässt sich die Last auf verschiedene Planerinstanzen verteilen, um die Leistung und Zuverlässigkeit zu verbessern.

      Durch die Erhöhung der Anzahl der Planer wird die Airflow-Leistung nicht immer verbessert. Wenn Sie beispielsweise nur einen Planer haben, ist die Leistung möglicherweise besser als zwei. Dies kann passieren, wenn der zusätzliche Planer nicht verwendet wird und somit Ressourcen Ihrer Umgebung verbraucht, ohne dass dies Auswirkungen auf die Gesamtleistung hat. Die tatsächliche Leistung des Planers hängt von der Anzahl der Airflow-Worker, der Anzahl der in der Umgebung ausgeführten DAGs und Aufgaben sowie der Konfiguration von Airflow und der Umgebung ab.

      Wir empfehlen, mit zwei Planern zu beginnen und dann die Leistung Ihrer Umgebung zu überwachen. Wenn Sie die Anzahl der Planer ändern, können Sie Ihre Umgebung jederzeit wieder auf die ursprüngliche Anzahl von Planern skalieren.

      Weitere Informationen zur Konfiguration mehrerer Planer finden Sie in der Airflow-Dokumentation.

    • Airflow-Triggerer. Überwacht asynchron alle verschobenen Aufgaben in Ihrer Umgebung. Wenn Sie mindestens eine Triggerinstanz in Ihrer Umgebung haben (oder mindestens zwei in hochverfügbaren Umgebungen), können Sie zurückstellbare Operatoren in Ihren DAGs verwenden.

    • Der Airflow-Webserver führt die Airflow-Weboberfläche aus, auf der Sie Ihre DAGs überwachen, verwalten und visualisieren können.

    • Airflow-Worker führen Aufgaben aus, die von Airflow-Planern geplant werden. Die minimale und maximale Anzahl an Workern in Ihrer Umgebung ändert sich dynamisch, je nach Anzahl der Aufgaben in der Warteschlange.

Console

Sie können für Ihre Umgebung eine Voreinstellung auswählen. Wenn Sie eine Voreinstellung auswählen, werden die Skalierungs- und Leistungsparameter für diese Voreinstellung automatisch ausgewählt. Sie haben auch die Möglichkeit, eine benutzerdefinierte Voreinstellung auszuwählen und alle Skalierungs- und Leistungsparameter für Ihre Umgebung anzugeben.

So wählen Sie auf der Seite Umgebung erstellen die Skalierungs- und Leistungskonfiguration für Ihre Umgebung aus:

  • Klicken Sie im Bereich Umgebungsressourcen auf Klein, Mittel oder Groß, um vordefinierte Werte zu verwenden.

  • So geben Sie benutzerdefinierte Werte für die Skalierungs- und Leistungsparameter an:

    1. Klicken Sie im Bereich Umgebungsressourcen auf Benutzerdefiniert.

    2. Legen Sie im Abschnitt Scheduler (Planer) die Anzahl der Planer fest, die Sie ausführen möchten. und die Ressourcenzuweisung für CPU, Arbeitsspeicher und Speicher.

    3. Geben Sie im Abschnitt Trigger im Feld Anzahl der Trigger die Anzahl der Trigger in Ihrer Umgebung ein. Sie können diese Zahl auf 0 festlegen, wenn Sie keine verzögerbaren Operatoren in Ihren DAGs verwenden möchten.

      Wenn Sie mindestens einen Trigger für Ihre Umgebung festlegen, verwenden Sie die Methode die Felder CPU und Arbeitsspeicher, um die Ressourcenzuweisung zu konfigurieren für Ihre Trigger.

    4. Geben Sie im Abschnitt DAG-Prozessor die Anzahl der DAG-Prozessoren in Ihrer Umgebung sowie die Anzahl der CPUs, den Arbeitsspeicher und den Speicherplatz für jeden DAG-Prozessor an.

    5. Geben Sie im Abschnitt Webserver die Menge an CPUs, Arbeitsspeicher und für den Webserver.

    6. Geben Sie im Abschnitt Worker Folgendes an:

      • Mindest- und Höchstanzahl der Worker für Autoscaling-Limits in Ihrer Umgebung.
      • CPU-, Arbeitsspeicher- und Speicherzuweisung für Ihre Worker
    7. Wählen Sie im Bereich Kerninfrastruktur in der Drop-down-Liste Umgebungsgröße die Umgebungsgröße aus.

gcloud

Beim Erstellen einer Umgebung steuern die folgenden Argumente die Skalierungs- und Leistungsparameter Ihrer Umgebung.

  • --environment-size gibt die Umgebungsgröße an.
  • --scheduler-count gibt die Anzahl der Planer an.
  • --scheduler-cpu gibt die Anzahl der CPUs für einen Airflow-Planer an.
  • --scheduler-memory gibt die Größe des Arbeitsspeichers für einen Airflow-Planer an.
  • --scheduler-storage gibt die Menge des Speicherplatzes für einen Airflow-Planer an.

  • --triggerer-count gibt die Anzahl der Airflow-Trigger in Ihrer Umgebung an. Der Standardwert für dieses Flag ist 0. Sie benötigen Trigger, wenn Sie zurückstellbare Operatoren in Ihren DAGs verwenden möchten.

    • Verwenden Sie für Umgebungen mit Standardausfallsicherheit einen Wert zwischen 0 und 10.
    • Verwenden Sie für besonders resiliente Umgebungen 0 oder einen Wert zwischen 2 und 10.
  • --triggerer-cpu gibt die Anzahl der CPUs für einen Airflow an. Triggerer in vCPU-Einheiten. Zulässige Werte: 0.5, 0.75, 1. Der Standardwert ist 0.5

  • --triggerer-memory gibt die Größe des Arbeitsspeichers für eine Airflow-Triggerer in GB. Der Standardwert ist 0.5.

    Der erforderliche Mindestarbeitsspeicher entspricht der Anzahl der CPUs, die den Auslösern zugewiesen sind. Der maximal zulässige Wert entspricht der Anzahl der Trigger-CPUs multipliziert mit 6,5.

    Wenn Sie beispielsweise für das Flag --triggerer-cpu den Wert 1 festlegen, Der Mindestwert für --triggerer-memory ist 1 und der Höchstwert ist 6.5.

  • --web-server-cpu gibt die Anzahl der CPUs für den Airflow-Webserver an.

  • --web-server-memory gibt die Größe des Arbeitsspeichers für den Airflow-Webserver an.

  • --web-server-storage gibt den Speicherplatz für den Airflow-Webserver an.

  • --worker-cpu gibt die Anzahl der CPUs für einen Airflow-Worker an.

  • --worker-memory gibt die Größe des Arbeitsspeichers für einen Airflow-Worker an.

  • --worker-storage gibt den Speicherplatz für einen Airflow-Worker an.

  • --min-workers gibt die Mindestanzahl an Airflow-Workern an. Der Cluster Ihrer Umgebung führt mindestens diese Anzahl an Workern aus.

  • --max-workers gibt die Höchstzahl an Airflow-Workern an. Der Cluster Ihrer Umgebung führt höchstens diese Anzahl an Workern aus.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.9.7-airflow-2.9.3 \
    --environment-size ENVIRONMENT_SIZE \
    --scheduler-count SCHEDULER_COUNT \
    --scheduler-cpu SCHEDULER_CPU \
    --scheduler-memory SCHEDULER_MEMORY \
    --scheduler-storage SCHEDULER_STORAGE \
    --triggerer-count TRIGGERER_COUNT \
    --triggerer-cpu TRIGGERER_CPU \
    --triggerer-memory TRIGGERER_MEMORY \
    --web-server-cpu WEB_SERVER_CPU \
    --web-server-memory WEB_SERVER_MEMORY \
    --web-server-storage WEB_SERVER_STORAGE \
    --worker-cpu WORKER_CPU \
    --worker-memory WORKER_MEMORY \
    --worker-storage WORKER_STORAGE \
    --min-workers WORKERS_MIN \
    --max-workers WORKERS_MAX

Ersetzen Sie:

  • ENVIRONMENT_SIZE mit small, medium oder large.
  • SCHEDULER_COUNT durch die Anzahl der Planer.
  • SCHEDULER_CPU durch die Anzahl der CPUs für einen Planer in vCPU-Einheiten.
  • SCHEDULER_MEMORY durch die Größe des Arbeitsspeichers für einen Planer.
  • SCHEDULER_STORAGE durch die Laufwerksgröße für einen Planer.
  • TRIGGERER_COUNT durch die Anzahl der Trigger.
  • TRIGGERER_CPU durch die Anzahl der CPUs für einen Trigger in vCPU-Einheiten.
  • TRIGGERER_MEMORY durch die Größe des Arbeitsspeichers für einen Trigger in GB.

  • WEB_SERVER_CPU durch die Anzahl der CPUs für den Webserver in vCPU-Einheiten.

  • WEB_SERVER_MEMORY durch die Größe des Arbeitsspeichers für den Webserver.

  • WEB_SERVER_STORAGE durch die Größe des Arbeitsspeichers für den Webserver.

  • WORKER_CPU durch die Anzahl der CPUs für einen Worker in vCPU-Einheiten.

  • WORKER_MEMORY durch die Größe des Arbeitsspeichers für einen Worker.

  • WORKER_STORAGE durch die Laufwerksgröße für einen Worker.

  • WORKERS_MIN durch die Mindestzahl an Airflow-Workern, die Ihre Umgebung ausführen kann. Die Anzahl der Worker in Ihrer Umgebung unterschreitet diesen Wert nie, auch nicht, wenn eine niedrigere Anzahl von Workern die Last bewältigen kann.

  • WORKERS_MAX durch die Maximalzahl an Airflow-Workern, die Ihre Umgebung ausführen kann. Die Anzahl der Worker in Ihrer Umgebung überschreitet diesen Wert nie, auch wenn eine höhere Anzahl an Workern zur Verarbeitung der Last erforderlich ist.

Beispiel:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.9.7-airflow-2.9.3 \
    --environment-size small \
    --scheduler-count 1 \
    --scheduler-cpu 0.5 \
    --scheduler-memory 2.5GB \
    --scheduler-storage 2GB \
    --triggerer-count 1 \
    --triggerer-cpu 0.5 \
    --triggerer-memory 0.5GB \
    --web-server-cpu 1 \
    --web-server-memory 2.5GB \
    --web-server-storage 2GB \
    --worker-cpu 1 \
    --worker-memory 2GB \
    --worker-storage 2GB \
    --min-workers 2 \
    --max-workers 4

API

Geben Sie beim Erstellen einer Umgebung in der Ressource Umgebung > Umgebungskonfiguration > Arbeitslastkonfiguration die Skalierungs- und Leistungsparameter der Umgebung an.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "workloadsConfig": {
      "scheduler": {
        "cpu": SCHEDULER_CPU,
        "memoryGb": SCHEDULER_MEMORY,
        "storageGb": SCHEDULER_STORAGE,
        "count": SCHEDULER_COUNT
      },
      "triggerer": {
        "count": TRIGGERER_COUNT,
        "cpu": TRIGGERER_CPU,
        "memoryGb": TRIGGERER_MEMORY
      },
      "webServer": {
        "cpu": WEB_SERVER_CPU,
        "memoryGb": WEB_SERVER_MEMORY,
        "storageGb": WEB_SERVER_STORAGE
      },
      "worker": {
        "cpu": WORKER_CPU,
        "memoryGb": WORKER_MEMORY,
        "storageGb": WORKER_STORAGE,
        "minCount": WORKERS_MIN,
        "maxCount": WORKERS_MAX
      }
    },
    "environmentSize": "ENVIRONMENT_SIZE"
  }
}

Ersetzen Sie:

  • SCHEDULER_CPU durch die Anzahl der CPUs für einen Planer in vCPU-Einheiten.
  • SCHEDULER_MEMORY durch die Größe des Arbeitsspeichers für einen Planer in GB.
  • SCHEDULER_STORAGE durch die Laufwerksgröße für einen Planer in GB.
  • SCHEDULER_COUNT durch die Anzahl der Planer.

  • TRIGGERER_COUNT durch die Anzahl der Trigger. Der Standardwert ist 0. Sie benötigen Trigger, wenn Sie zurückstellbare Operatoren in Ihren DAGs verwenden möchten.

    • Verwenden Sie für Umgebungen mit Standardausfallsicherheit einen Wert zwischen 0 und 10.
    • Verwenden Sie für besonders resiliente Umgebungen 0 oder einen Wert zwischen 2 und 10.

    Wenn Sie mindestens einen Auslöser verwenden, müssen Sie auch die Parameter TRIGGERER_CPU und TRIGGERER_MEMORY angeben:

  • TRIGGERER_CPU gibt die Anzahl der CPUs für einen Trigger an. in vCPU-Einheiten. Zulässige Werte: 0.5, 0.75, 1.

  • Mit TRIGGERER_MEMORY wird die Größe des Arbeitsspeichers für einen Trigger konfiguriert. Der mindestens erforderliche Arbeitsspeicher entspricht der Anzahl der CPUs, die den Triggern zugewiesen sind. Der maximal zulässige Wert ist entspricht der Anzahl der Trigger-CPUs multipliziert mit 6,5.

    Wenn Sie beispielsweise TRIGGERER_CPU auf 1 festlegen, Der Mindestwert für TRIGGERER_MEMORY ist 1 und der Höchstwert ist 6.5.

  • WEB_SERVER_CPU durch die Anzahl der CPUs für den Webserver in vCPU-Einheiten.

  • WEB_SERVER_MEMORY durch die Größe des Arbeitsspeichers für den Webserver in GB.

  • WEB_SERVER_STORAGE durch die Laufwerksgröße für den Webserver in GB.

  • WORKER_CPU durch die Anzahl der CPUs für einen Worker in vCPU-Einheiten.

  • WORKER_MEMORY durch die Größe des Arbeitsspeichers für einen Worker in GB.

  • WORKER_STORAGE durch die Laufwerksgröße für einen Worker in GB.

  • WORKERS_MIN durch die Mindestzahl an Airflow-Workern, die Ihre Umgebung ausführen kann. Die Anzahl der Worker in Ihrer Umgebung unterschreitet diesen Wert nie, auch nicht, wenn eine niedrigere Anzahl von Workern die Last bewältigen kann.

  • WORKERS_MAX durch die Maximalzahl an Airflow-Workern, die Ihre Umgebung ausführen kann. Die Anzahl der Worker in Ihrer Umgebung überschreitet diesen Wert nie, auch wenn eine höhere Anzahl an Workern zur Verarbeitung der Last erforderlich ist.

  • ENVIRONMENT_SIZE durch die Umgebungsgröße, ENVIRONMENT_SIZE_SMALL, ENVIRONMENT_SIZE_MEDIUM oder ENVIRONMENT_SIZE_LARGE.

Beispiel:

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "workloadsConfig": {
      "scheduler": {
        "cpu": 2.5,
        "memoryGb": 2.5,
        "storageGb": 2,
        "count": 1
      },
      "triggerer": {
        "cpu": 0.5,
        "memoryGb": 0.5,
        "count": 1
      },
      "webServer": {
        "cpu": 1,
        "memoryGb": 2.5,
        "storageGb": 2
      },
      "worker": {
        "cpu": 1,
        "memoryGb": 2,
        "storageGb": 2,
        "minCount": 2,
        "maxCount": 4
      }
    },
    "environmentSize": "ENVIRONMENT_SIZE_SMALL"
  }
}

Terraform

Beim Erstellen einer Umgebung steuern die folgenden Argumente die Skalierungs- und Leistungsparameter Ihrer Umgebung.

  • Im Block config:

    • Das Feld environment_size steuert die Umgebungsgröße.
  • Im Block workloads_config:

    • Das scheduler.cpu-Feld gibt die Anzahl der CPUs für einen Airflow-Planer an.
    • Das scheduler.memory_gb-Feld gibt die Größe des Arbeitspeichers für einen Airflow-Planer an.
    • Das scheduler.storage_gb-Feld gibt die Größe des Speicherplatzes für einen Planer an.
    • Das Feld scheduler.count gibt die Anzahl der Planer in Ihrer Umgebung an.
    • Das Feld triggerer.cpu gibt die Anzahl der CPUs für einen Airflow-Trigger an.
    • Das Feld triggerer.memory_gb gibt die Größe des Arbeitsspeichers für einen Airflow-Trigger an.
    • Das Feld triggerer.count gibt die Anzahl der Trigger in Ihrem zu verbessern.

    • Das Feld web_server.cpu gibt die Anzahl der CPUs für den Airflow-Webserver an.

    • Das web_server.memory_gb-Feld gibt die Größe des Arbeitspeichers für den Airflow-Webserver an.

    • Das Feld web_server.storage_gb gibt den Speicherplatz für den Airflow-Webserver an.

    • Das Feld worker.cpu gibt die Anzahl der CPUs für einen Airflow-Worker an.

    • Das Feld worker.memory_gb gibt die Größe des Arbeitspeichers für einen Airflow-Worker an.

    • Das Feld worker.storage_gb gibt die Größe des Speicherplatzes für einen Airflow-Worker an.

    • Das Feld worker.min_count gibt die Mindestanzahl an Workern in Ihrer Umgebung an.

    • Das Feld worker.max_count gibt die Höchstzahl an Workern in Ihrer Umgebung an.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    workloads_config {

      scheduler {
        cpu = SCHEDULER_CPU
        memory_gb = SCHEDULER_MEMORY
        storage_gb = SCHEDULER_STORAGE
        count = SCHEDULER_COUNT
      }
      triggerer {
        count = TRIGGERER_COUNT
        cpu = TRIGGERER_CPU
        memory_gb = TRIGGERER_MEMORY
      }
      web_server {
        cpu = WEB_SERVER_CPU
        memory_gb = WEB_SERVER_MEMORY
        storage_gb = WEB_SERVER_STORAGE
      }
      worker {
        cpu = WORKER_CPU
        memory_gb = WORKER_MEMORY
        storage_gb = WORKER_STORAGE
        min_count = WORKERS_MIN
        max_count = WORKERS_MAX
      }
    }

    environment_size = "ENVIRONMENT_SIZE"

  }
}

Ersetzen Sie:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.
  • LOCATION durch die Region, in der sich die Umgebung befindet.
  • SCHEDULER_CPU durch die Anzahl der CPUs für einen Planer in vCPU-Einheiten.
  • SCHEDULER_MEMORY durch die Größe des Arbeitsspeichers für einen Planer in GB.
  • SCHEDULER_STORAGE durch die Laufwerksgröße für einen Planer in GB.
  • SCHEDULER_COUNT durch die Anzahl der Planer.
  • TRIGGERER_COUNT durch die Anzahl der Trigger.
  • TRIGGERER_CPU durch die Anzahl der CPUs für einen Trigger in vCPU-Einheiten.
  • TRIGGERER_MEMORY durch die Größe des Arbeitsspeichers für einen Trigger in GB.
  • WEB_SERVER_CPU durch die Anzahl der CPUs für den Webserver in vCPU-Einheiten.
  • WEB_SERVER_MEMORY durch die Größe des Arbeitsspeichers für den Webserver in GB.
  • WEB_SERVER_STORAGE durch die Laufwerksgröße für den Webserver in GB.
  • WORKER_CPU durch die Anzahl der CPUs für einen Worker in vCPU-Einheiten.
  • WORKER_MEMORY durch die Größe des Arbeitsspeichers für einen Worker in GB.
  • WORKER_STORAGE durch die Laufwerksgröße für einen Worker in GB.
  • WORKERS_MIN durch die Mindestzahl an Airflow-Workern, die Ihre Umgebung ausführen kann. Die Anzahl der Worker in Ihrer Umgebung unterschreitet diesen Wert nie, auch nicht, wenn eine niedrigere Anzahl von Workern die Last bewältigen kann.
  • WORKERS_MAX durch die Maximalzahl an Airflow-Workern, die Ihre Umgebung ausführen kann. Die Anzahl der Worker in Ihrer Umgebung überschreitet diesen Wert nie, auch wenn eine höhere Anzahl an Workern zur Verarbeitung der Last erforderlich ist.
  • ENVIRONMENT_SIZE durch die Umgebungsgröße, ENVIRONMENT_SIZE_SMALL, ENVIRONMENT_SIZE_MEDIUM oder ENVIRONMENT_SIZE_LARGE.

Beispiel:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    workloads_config {

      scheduler {
        cpu = 2.5
        memory_gb = 2.5
        storage_gb = 2
        count = 1
      }
      triggerer {
        count = 1
        cpu = 0.5
        memory_gb = 0.5
      }
      web_server {
        cpu = 1
        memory_gb = 2.5
        storage_gb = 2
      }
      worker {
        cpu = 1
        memory_gb = 2
        storage_gb = 2
        min_count = 2
        max_count = 4
      }
    }

    environment_size = "ENVIRONMENT_SIZE_SMALL"

  }
}

Schritt 5: Optional: Modus mit hoher Ausfallsicherheit aktivieren

Hochgradig robuste Cloud Composer-Umgebungen sind Umgebungen mit integrierter Redundanz und Failover- die die Anfälligkeit der Umgebung für zonale Ausfälle Single Point of Failure aus.

Eine hochgradig resiliente Umgebung erstreckt sich über mindestens zwei Zonen einer ausgewählten Region. Genau zwei Airflow-Planer, zwei Webserver und mindestens zwei Trigger (wenn die Anzahl der Trigger nicht auf 0 festgelegt ist) werden in separaten Zonen ausgeführt. Die Mindestanzahl der Worker ist auf zwei festgelegt und der Cluster Ihrer Umgebung die Worker-Instanzen auf Zonen verteilen. Bei einem Zonenausfall werden die betroffenen Worker-Instanzen in einer anderen Zone neu geplant. Die Cloud SQL-Datenbank einer hochverfügbaren Umgebung ist eine regionale Instanz mit einer primären Instanz und einer Standby-Instanz.

Console

Auf der Seite Umgebung erstellen:

  1. Wählen Sie im Abschnitt Ausfallsicherheitsmodus die Option Hohe Ausfallsicherheit aus.

  2. Wählen Sie im Bereich Umgebungsressourcen Skalierungsparameter für eine äußerst resiliente Umgebung aus. Für hochgradig resiliente Umgebungen sind genau zwei Scheduler, null oder zwei bis zehn Auslöser und mindestens zwei Worker erforderlich:

    1. Klicken Sie auf das Optionsfeld neben Custom (Benutzerdefiniert).

    2. Wählen Sie in der Drop-down-Liste Anzahl der Planer die Option 2 aus.

    3. Wählen Sie in der Drop-down-Liste Anzahl der Auslöser die Option 0 oder einen Wert zwischen 2 und 10 aus. Konfigurieren Sie CPU und Arbeitsspeicher. für Ihre Trigger.

    4. Wählen Sie in der Drop-down-Liste Mindestanzahl der Worker die gewünschte Anzahl aus.

  3. Im Abschnitt Netzwerkkonfiguration:

    1. Wählen Sie unter Netzwerktyp die Option Private IP-Umgebung aus.

    2. Geben Sie bei Bedarf weitere Netzwerkparameter an.

gcloud

Wenn Sie eine Umgebung erstellen, wird das Argument --enable-high-resilience aktiviert den Modus für hohe Ausfallsicherheit.

Legen Sie die folgenden Argumente fest:

  • --enable-high-resilience
  • --enable-private-environment und andere Netzwerkparameter für eine private IP-Umgebung, falls erforderlich
  • --scheduler-count bis 2
  • --triggerer-count bis 0 oder ein Wert zwischen 2 und 10. Wenn Sie Trigger verwenden, gilt: --triggerer-cpu and--triggerer-memory Flags sind auch für das Erstellen von Umgebungen erforderlich.

    Weitere Informationen zu --triggerer-count, --triggerer-cpu und --triggerer-memory-Flags, siehe Konfiguration von Skalierungs- und Leistungsparametern für die Umgebung

  • --min-workers bis 2 oder mehr

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.9.7-airflow-2.9.3 \
    --enable-high-resilience \
    --enable-private-environment \
    --scheduler-count 2 \
    --triggerer-count 2 \
    --triggerer-cpu 0.5 \
    --triggerer-memory 0.5 \
    --min-workers 2

API

Aktivieren Sie beim Erstellen einer Umgebung in der Ressource Umgebung > Umgebungskonfiguration den Modus mit hoher Ausfallsicherheit.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "resilience_mode": "HIGH_RESILIENCE"
  }
}

Beispiel:


// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "resilience_mode": "HIGH_RESILIENCE"
  }
}

Terraform

Wenn Sie eine Umgebung erstellen, aktiviert das Feld resilience_mode im Block config den Modus mit hoher Ausfallsicherheit.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    resilience_mode = "HIGH_RESILIENCE"

  }
}

Beispiel:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    resilience_mode = "HIGH_RESILIENCE"

}

Schritt 6: Optional: Zone für die Datenbank der Umgebung angeben

Sie können eine bevorzugte Cloud SQL-Zone angeben, wenn Sie eine Standard- für mehr Resilienz.

Console

Auf der Seite Umgebung erstellen:

  1. Maximieren Sie im Bereich Erweiterte Konfiguration das Element Erweiterte Konfiguration anzeigen.

  2. Wählen Sie aus der Liste Airflow-Datenbankzone eine bevorzugte Methode aus. Cloud SQL-Zone.

gcloud

Wenn Sie eine Umgebung erstellen, wird das Argument --cloud-sql-preferred-zone gibt eine bevorzugte Cloud SQL-Zone an.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.9.7-airflow-2.9.3 \
    --cloud-sql-preferred-zone SQL_ZONE

Ersetzen Sie Folgendes:

  • SQL_ZONE: die bevorzugte Cloud SQL-Zone. Diese Zone muss sich in der Region befinden, in der sich die Umgebung befindet.

Beispiel:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.9.7-airflow-2.9.3 \
    --cloud-sql-preferred-zone us-central1-a

API

Wenn Sie eine Umgebung erstellen, geben Sie im Feld Environment (Umgebung) > DatabaseConfig, geben Sie die bevorzugte Cloud SQL-Zone.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "databaseConfig": {
      "zone": "SQL_ZONE"
    }
  }
}

Ersetzen Sie Folgendes:

  • SQL_ZONE: die bevorzugte Cloud SQL-Zone. Diese Zone muss sich in der Region befinden, in der sich die Umgebung befindet.

Beispiel:


// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "databaseConfig": {
      "zone": "us-central1-a"
    }
  }
}

Terraform

Wenn Sie eine Umgebung erstellen, wird im Feld zone im Block database_config die bevorzugte Cloud SQL-Zone angegeben.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    database_config {
      zone = "SQL_ZONE"
    }
  }
}

Ersetzen Sie Folgendes:

  • SQL_ZONE: bevorzugte Cloud SQL-Zone. Diese Zone muss sich in der Region, in der sich die Umgebung befindet.

Schritt 7: Optional: Netzwerk der Umgebung konfigurieren

Netzwerkparameter hängen vom Typ der Umgebung ab, die Sie erstellen möchten:

  • Öffentliche IP-Umgebung: Verwenden Sie die Standardnetzwerkparameter.

  • Private IP-Umgebung (mit PSC): In dieser Konfiguration verwendet Ihre Umgebung Private Service Connect für die Konnektivität.

    Konfigurieren Sie Ihre private IP-Umgebung:

    1. Konfigurieren Sie das Netzwerk Ihres Projekts für private IP-Umgebungen.
    2. Private Service Connect konfigurieren wenn Sie Ihre Umgebung erstellen.
    3. Geben Sie weitere Parameter für Ihre private IP-Umgebung an, wie in diesem Abschnitt beschrieben.

    Für eine Umgebung mit privater IP-Adresse und PSC müssen Sie Folgendes kennen:

    • Ihre VPC-Netzwerk-ID
    • Ihre VPC-Subnetzwerk-ID
    • Zwei sekundäre IP-Bereiche in Ihrem VPC-Subnetzwerk:

      • Sekundärer IP-Bereich für Pods
      • Sekundärer IP-Bereich für Dienste
    • IP-Bereiche für die Komponenten der Umgebung:

      • IP-Bereich der GKE-Steuerungsebene. IP-Bereich für die GKE-Steuerungsebene.
      • Subnetzwerk für Cloud Composer-Verbindung IP-Bereich für das Subnetzwerk der Cloud Composer-Verbindung.
  • Private IP-Umgebung (VPC-Peering) In dieser Konfiguration verwendet Ihre Umgebung VPC-Peerings für die Konnektivität.

    Konfigurieren Sie Ihre Private IP-Umgebung:

    1. Konfigurieren Sie das Netzwerk Ihres Projekts für private IP-Umgebungen.
    2. Geben Sie weitere Parameter für Ihre private IP-Umgebung an, wie weiter unten in diesem Abschnitt beschrieben.

    Für eine Umgebung mit privater IP-Adresse mit VPC-Peering müssen Sie Folgendes kennen:

    • Ihre VPC-Netzwerk-ID
    • Ihre VPC-Subnetzwerk-ID
    • Zwei sekundäre IP-Bereiche in Ihrem VPC-Subnetzwerk:

      • Sekundärer IP-Bereich für Pods
      • Sekundärer IP-Bereich für Dienste
    • IP-Bereiche für die Komponenten der Umgebung:

      • IP-Bereich für die GKE-Steuerungsebene.

      • IP-Bereich für VPC-Peering, um aus dem internen Cloud Composer-Netzwerk in das ausgewählte Netzwerk zu exportieren. Cloud Composer-Infrastrukturkomponenten verwenden IP-Adressen aus diesem Bereich.

      • IP-Bereich für die Cloud SQL-Instanz.

  • Für eine freigegebene VPC-Umgebung müssen Sie das Netzwerk für das Hostprojekt zusätzlich einrichten und dann eine öffentliche oder private IP-Umgebung in einem Dienstprojekt erstellen. Folgen Sie der Anleitung auf der Seite Freigegebene VPC konfigurieren.

    Für eine freigegebene VPC-Umgebung müssen Sie Folgendes kennen:

    • Die VPC-Netzwerk-ID des Hostprojekts
    • Die VPC-Subnetzwerk-ID des Hostprojekts

    • Zwei sekundäre IP-Bereiche im VPC-Subnetzwerk Ihres Hostprojekts:

      • Sekundärer IP-Bereich für Pods
      • Sekundärer IP-Bereich für Dienste

    Wenn Sie eine freigegebene VPC-Umgebung mit öffentlicher IP erstellen, müssen Sie dennoch das VPC-Netzwerk, das Subnetzwerk und die sekundären IP-Bereiche des Hostprojekts für Pods und Dienste angeben.

  • Zum Erstellen einer VPC-SC-Umgebung müssen Sie einen Dienstperimeter erstellen und dann Umgebungen mit privater IP innerhalb dieses Perimeters erstellen. Folgen Sie der unter VPC Service Controls konfigurieren beschriebenen Anleitung.

Zusätzliche Netzwerkoptionen für Umgebungen:

  • Privat verwendete öffentliche IP-Adressen. Wenn Sie mehr IP-Adressen kann Ihre Umgebung bestimmte öffentliche IP-Adressbereiche privat als intern verwenden, Subnetz-IP-Adressbereiche für Pods und Dienste.
  • Autorisierte Netzwerke Wenn Sie über HTTPS auf die Steuerungsebene Ihrer privaten IP-Umgebung zugreifen möchten, können Sie mit autorisierten Netzwerken CIDR-Bereiche angeben, die dies tun dürfen.
  • IP-Masquerade-Agent Durch die Verwendung von Umgebungen mit IP-Masquerade können Sie n:1-IP-Adressübersetzungen in Ihrem und die Netzwerkkonfigurationen Ihrer Umgebung zu erstellen. Weitere Informationen zu Erstellen von Umgebungen mit dem IP-Masquerade-Agent, siehe Aktivieren Sie den IP-Masquerade-Agent.

Console

So erstellen Sie eine Umgebung mit privater IP:

  1. Achten Sie darauf, dass Ihr Netzwerk für den Umgebungstyp konfiguriert ist, den Sie erstellen möchten.

  2. Maximieren Sie im Bereich Netzwerkkonfiguration das Element Netzwerkkonfiguration anzeigen.

  3. Wählen Sie in der Drop-down-Liste Netzwerk Ihre VPC-Netzwerk-ID aus.

  4. Wählen Sie in der Drop-down-Liste Subnetzwerk Ihre VPC-Subnetzwerk-ID aus.

  5. Wählen Sie im Abschnitt Sekundärer IP-Bereich für Pods den sekundären IP-Bereich für Pods aus oder geben Sie ihn an. Sie können einen vorhandenen sekundären Bereich in Ihrem VPC-Netzwerk verwenden oder einen automatisch erstellten Bereich verwenden.

  6. Wählen Sie im Abschnitt Sekundärer IP-Bereich für Dienste den sekundären IP-Bereich für Dienste aus oder geben Sie ihn an. Sie können einen vorhandenen sekundären Bereich in Ihrem VPC-Netzwerk oder verwenden Sie einen automatisch erstellten Bereich.

  7. Wählen Sie im Bereich Netzwerktyp die Option Umgebung mit privater IP aus, um eine Umgebung mit privater IP zu erstellen.

  8. Wählen Sie im Abschnitt Composer-Verbindung den Netzwerktyp für Ihre Umgebung und geben Sie IP-Bereiche für Umgebungskomponenten an:

    Für eine Umgebung, die Private Service Connect verwendet:

    1. Wählen Sie Private Service Connect für eine Umgebung aus, die Private Service Connect

    2. Geben Sie im Abschnitt Subnetzwerk für Composer-Verbindung einen IP-Bereich für das Subnetzwerk der Cloud Composer-Verbindung an. Die Adresse für den PSC-Endpunkt wird aus diesem Bereich ausgewählt. Sie können einen benutzerdefinierten Bereich angeben oder den Standardbereich verwenden.

    Für eine Umgebung mit VPC-Peerings:

    1. Wählen Sie VPC-Peerings für eine Umgebung aus, die VPC-Peerings verwendet.

    2. Geben Sie im Abschnitt IP-Bereich für das Composer-Mandantennetzwerk einen IP-Bereich für das Mandantennetzwerk von Cloud Composer an. Dieses Netzwerk hostet die SQL-Proxy-Komponente Ihrer Umgebung. Sie können einen benutzerdefinierten Bereich angeben oder den Standardbereich verwenden.

    3. Führen Sie im Abschnitt IP-Bereich für Cloud SQL-Netzwerk folgende Schritte aus: Geben Sie einen IP-Bereich für die Cloud SQL-Instanz an. Sie können einen benutzerdefinierten Bereich angeben oder den Standardbereich verwenden.

  9. Geben Sie im Bereich IP-Bereich für Netzwerk der GKE-Steuerungsebene einen IP-Bereich für die GKE-Steuerungsebene an:

    • Wählen Sie Standard-IP-Bereich aus, um den Standard-IP-Bereich für die Region zu verwenden, in der sich Ihre Umgebung befindet.

    • Wenn Sie einen benutzerdefinierten IP-Bereich angeben möchten, wählen Sie Benutzerdefinierter IP-Bereich aus und geben Sie in das Feld Private IP des GKE-Clustermasters einen Bereich in der CIDR-Notation ein.

  10. Wählen Sie den Zugriff auf die Ebene der GKE-Steuerungsebene aus. Die Steuerungsebene hat zwei Endpunkte. Ein Endpunkt ist privat, zur Verwendung durch Clusterknoten und VMs Ein weiterer Endpunkt ist öffentlich. Sie können die Zugriffsebene für den öffentlichen Endpunkt:

    • So ermöglichen Sie den Zugriff von autorisierten Netzwerken auf den öffentlichen Endpunkt: Wählen Sie den Endpunkt der Steuerungsebene des Clusters aufrufen externe IP-Adresse.

      Diese Option legt die Zugriffsebene für die Steuerungsebene auf "Zugriff auf öffentliche Endpunkte aktiviert, autorisierte Netzwerke aktiviert" fest. Dies bietet eingeschränkten Zugriff auf die Steuerungsebene über autorisierte Netzwerke. Standardmäßig werden keine Quell-IP-Adressen angegeben. Sie können dem Cluster autorisierte Netzwerke hinzufügen.

    • Entfernen Sie das Häkchen beim Kästchen Auf den Endpunkt der Steuerungsebene des Clusters über dessen externe IP-Adresse zugreifen, um den Zugriff auf den öffentlichen Endpunkt über autorisierte Netzwerke zu deaktivieren.

      Diese Option legt die Zugriffsebene für die Steuerungsebene auf "Zugriff auf öffentlichen Endpunkt deaktiviert" fest. Dies verhindert den gesamten Internetzugriff auf die Steuerungsebene.

gcloud

Achten Sie darauf, dass Ihr Netzwerk für den Umgebungstyp konfiguriert ist, den Sie erstellen möchten.

Wenn Sie eine Umgebung erstellen, steuern die folgenden Argumente die Netzwerkparameter. Wenn Sie einen Parameter weglassen, wird der Standardwert verwendet.

  • --enable-private-environment ermöglicht eine Umgebung mit privater IP.

  • --network gibt Ihre VPC-Netzwerk-ID an.

  • --subnetwork gibt Ihre VPC-Subnetzwerk-ID an.

  • --cluster-secondary-range-name oder --cluster-ipv4-cidr konfiguriert den sekundären Bereichs für Pods.

  • --services-secondary-range-name oder --services-ipv4-cidr dient dem Konfigurieren des sekundären Bereichs für Dienste.

  • --master-ipv4-cidr gibt einen Bereich für die GKE-Steuerungsebene an.

  • (Umgebungen mit PSC) --connection-subnetwork gibt einen Bereich für das Cloud Composer-Verbindungs-Subnetzwerk an, in dem der PSC-Endpunkt gehostet wird.

  • (Umgebungen mit VPC-Peerings) --composer-network-ipv4-cidr gibt einen Bereich für das Cloud Composer-Mandantennetzwerk an. Dieses Netzwerk hostet die SQL-Proxy-Komponente Ihrer Umgebung.

  • (Umgebungen mit VPC-Peerings) --cloud-sql-ipv4-cidr gibt eine Bereich für die Cloud SQL-Instanz.

  • --enable-private-endpoint steuert den Zugriff auf die Ebene für die GKE-Steuerungsebene. Die Steuerungsebene hat zwei Endpunkte. Ein Endpunkt ist privat und wird von Clusterknoten und VMs verwendet. Ein weiterer Endpunkt ist öffentlich. Sie können die Zugriffsebene für den öffentlichen Endpunkt angeben:

    • Lassen Sie das Argument --enable-private-endpoint weg, wenn Sie den Zugriff auf den öffentlichen Endpunkt über autorisierte Netzwerke aktivieren möchten.

      Diese Option legt die Zugriffsebene für die Steuerungsebene auf "Zugriff auf öffentliche Endpunkte aktiviert, autorisierte Netzwerke aktiviert" fest. Dies bietet eingeschränkten Zugriff auf die Steuerungsebene über autorisierte Netzwerke. Standardmäßig werden keine Quell-IP-Adressen angegeben. Sie können dem Cluster autorisierte Netzwerke hinzufügen.

    • Geben Sie das Argument --enable-private-endpoint an, um den Zugriff auf den öffentlichen Endpunkt über autorisierte Netzwerke zu deaktivieren.

      Diese Option legt die Zugriffsebene für die Steuerungsebene auf "Zugriff auf öffentlichen Endpunkt deaktiviert" fest. Dies verhindert den gesamten Internetzugriff auf die Steuerungsebene.

  • --enable-master-authorized-networks und --master-authorized-networks Argumente konfigurieren autorisierte Netzwerke für Ihre Umgebung.

  • --enable-privately-used-public-ips konfiguriert privaten öffentlichen IP-Adressen für Ihre Umgebung verwenden.

  • --enable-ip-masq-agent Aktiviert den IP-Masquerade-Agent.

Beispiel (private IP-Umgebung)

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.9.7-airflow-2.9.3 \
    --enable-private-environment \
    --network NETWORK_ID \
    --subnetwork SUBNETWORK_ID \
    --cluster-ipv4-cidr PODS_RANGE \
    --services-ipv4-cidr SERVICES_RANGE \
    --master-ipv4-cidr CONTROL_PLANE_RANGE \
    --connection-subnetwork COMPOSER_PSC_RANGE \

Ersetzen Sie:

  • NETWORK_ID durch Ihre VPC-Netzwerk-ID.
  • SUBNETWORK_ID durch Ihre VPC-Subnetzwerk-ID.

  • PODS_RANGE durch den sekundären Bereich für Pods.

  • SERVICES_RANGE durch den sekundären Bereich für Dienste.

  • CONTROL_PLANE_RANGE durch den sekundären Bereich für die GKE-Steuerungsebene.

  • COMPOSER_PSC_RANGE durch den Bereich für Cloud Composer Subnetzwerk.

Schritt 8: Optional: Netzwerk-Tags hinzufügen

Netzwerk-Tags werden auf alle Knoten-VMs im Cluster. Mit Tags werden gültige Quellen oder Ziele für das Netzwerk identifiziert Firewalls. Jedes Tag in der Liste muss RFC 1035 entsprechen.

Fügen Sie beispielsweise Netzwerk-Tags hinzu, wenn Sie Traffic für eine private IP-Umgebung mit Firewallregeln

Console

Auf der Seite Umgebung erstellen:

  1. Suchen Sie den Abschnitt Netzwerkkonfiguration.
  2. Geben Sie im Feld Netzwerk-Tags die Netzwerk-Tags für Ihre Umgebung ein.

gcloud

Beim Erstellen einer Umgebung steuern die folgenden Argumente Netzwerk-Tags:

  • --tags gibt eine durch Kommas getrennte Liste von Netzwerk-Tags an, die auf alle Knoten-VMs angewendet werden.
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.9.7-airflow-2.9.3 \
    --tags TAGS

Ersetzen Sie:

  • TAGS durch eine durch Kommas getrennte Liste von Netzwerk-Tags.

Beispiel:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.9.7-airflow-2.9.3 \
    --tags group1,production

API

Geben Sie beim Erstellen einer Umgebung in der Ressource Umgebung > Umgebungskonfiguration Netzwerk-Tags für Ihre Umgebung an.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "nodeConfig": {
      "tags": [
        "TAG"
      ]
    }
  }
}

Ersetzen Sie:

  • TAG mit einem Netzwerk-Tag.

Beispiel:

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "nodeConfig": {
      "tags": [
        "group1",
        "production"
      ]
    }
  }
}

Terraform

Beim Erstellen einer Umgebung definieren die folgenden Felder Netzwerk-Tags für Ihre Umgebung:

  • Das Feld tags im Block node_config gibt eine durch Kommas getrennte Liste an von Netzwerk-Tags, die auf alle Knoten-VMs angewendet werden.
resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    node_config {
      tags = ["TAGS"]
    }
  }
}

Ersetzen Sie:

  • TAGS durch eine durch Kommas getrennte Liste von Netzwerk-Tags.

Beispiel:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {
    node_config {
      tags = ["group1","production"]
    }
  }
}

Schritt 9: Optional: Netzwerkzugriff für Webserver konfigurieren

Die Zugriffsparameter für den Airflow-Webserver hängen nicht vom Typ Ihrer Umgebung ab. Stattdessen können Sie den Webserverzugriff separat konfigurieren. Beispiel: In einer privaten IP-Umgebung kann die Airflow-UI weiterhin über das Internet zugänglich sein.

Sie können die zulässigen IP-Bereiche nicht mithilfe privater IP-Adressen konfigurieren.

Console

Auf der Seite Umgebung erstellen:

  1. Maximieren Sie im Bereich Netzwerkkonfiguration das Element Netzwerkkonfiguration anzeigen.

  2. Im Abschnitt Webserver-Netzwerkzugriffssteuerung:

    • Wenn Sie von allen IP-Adressen aus Zugriff auf den Airflow-Webserver gewähren möchten, Wählen Sie Zugriff von allen IP-Adressen zulassen aus.

    • Wenn Sie den Zugriff auf bestimmte IP-Bereiche beschränken möchten, wählen Sie Zugriff nur von bestimmten IP-Adressen zulassen Geben Sie im Feld IP-Bereich einen IP-Bereich in der CIDR-Notation an. Geben Sie im Feld Beschreibung eine optionale Beschreibung für diesen Bereich an. Wenn Sie mehrere Bereiche angeben möchten, klicken Sie auf IP-Bereich hinzufügen.

    • Wenn Sie den Zugriff für alle IP-Adressen verweigern möchten, wählen Sie Zugriff nur von bestimmten IP-Adressen zulassen aus und klicken Sie neben dem leeren Bereichseintrag auf Element löschen.

gcloud

Beim Erstellen einer Umgebung steuern die folgenden Argumenten die Zugriffsebene des Webservers:

  • --web-server-allow-all bietet von allen IP-Adressen Zugriff auf Airflow. Dies ist die Standardoption.

  • --web-server-allow-ip beschränkt den Zugriff auf bestimmte Quell-IP-Bereiche. Wenn Sie mehrere IP-Bereiche angeben möchten, verwenden Sie dieses Argument mehrmals.

  • --web-server-deny-all unterbindet den Zugriff für alle IP-Adressen.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.9.7-airflow-2.9.3 \
    --web-server-allow-ip ip_range=WS_IP_RANGE,description=WS_RANGE_DESCRIPTION

Ersetzen Sie:

  • WS_IP_RANGE durch den IP-Bereich (in CIDR-Notation), der auf die Airflow-UI zugreifen darf.
  • WS_RANGE_DESCRIPTION durch die Beschreibung des IP-Bereichs.

Beispiel:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.9.7-airflow-2.9.3 \
    --web-server-allow-ip ip_range=192.0.2.0/24,description="office net 1" \
    --web-server-allow-ip ip_range=192.0.4.0/24,description="office net 3"

API

Wenn Sie eine Umgebung erstellen, klicken Sie auf Umgebung > Ressource EnvironmentConfig, Webserver angeben Zugriffsparameter.

  • Wenn Sie den Zugriff auf den Airflow-Webserver von allen IP-Adressen aus ermöglichen möchten, lassen Sie webServerNetworkAccessControl weg.

  • Wenn Sie den Zugriff auf bestimmte IP-Bereiche beschränken möchten, geben Sie einen oder mehrere Bereiche in allowedIpRanges an.

  • Um den Zugriff für alle IP-Adressen zu verhindern, fügen Sie allowedIpRanges hinzu und legen Sie leere Liste. Geben Sie darin keine IP-Bereiche an.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "webServerNetworkAccessControl": {
      "allowedIpRanges": [
        {
          "value": "WS_IP_RANGE",
          "description": "WS_RANGE_DESCRIPTION"
        }
      ]
    }
  }
}

Ersetzen Sie:

  • WS_IP_RANGE durch den IP-Bereich (in CIDR-Notation), der auf die Airflow-UI zugreifen darf.
  • WS_RANGE_DESCRIPTION durch die Beschreibung des IP-Bereichs.

Beispiel:


// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "webServerNetworkAccessControl": {
      "allowedIpRanges": [
        {
          "value": "192.0.2.0/24",
          "description": "office net 1"
        },
        {
          "value": "192.0.4.0/24",
          "description": "office net 3"
        }
      ]
    }
  }
}

Terraform

Beim Erstellen einer Umgebung enthält der Block allowed_ip_range im Block web_server_network_access_control IP-Bereiche, die auf den Webserver zugreifen können.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    web_server_network_access_control {

      allowed_ip_range {
        value = "WS_IP_RANGE"
        description = "WS_RANGE_DESCRIPTION"
      }

    }

  }
}

Ersetzen Sie:

  • WS_IP_RANGE durch den IP-Bereich (in CIDR-Notation), der auf die Airflow-UI zugreifen darf.
  • WS_RANGE_DESCRIPTION durch die Beschreibung des IP-Bereichs.

Beispiel:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    web_server_network_access_control {
      allowed_ip_range {
        value = "192.0.2.0/24"
        description = "office net 1"
      },
      allowed_ip_range {
        value = "192.0.4.0/24"
        description = "office net 3"
      }

    }
}

Schritt 10: Optional: Airflow-Konfigurationsüberschreibungen und Umgebungsvariablen angeben

Sie können beim Erstellen einer Umgebung Airflow-Konfigurationsüberschreibungen und Umgebungsvariablen einrichten. Alternativ können Sie dies später tun, nachdem Ihre Umgebung erstellt wurde.

Einige Airflow-Konfigurationsoptionen sind gesperrt und können nicht überschrieben werden.

Eine Liste der verfügbaren Airflow-Konfigurationsoptionen finden Sie unter Konfigurationsreferenz für Airflow 2 und Airflow 1.10.*.

So geben Sie Airflow-Konfigurationsüberschreibungen und Umgebungsvariablen an:

Console

Auf der Seite Umgebung erstellen:

  1. Klicken Sie im Bereich Umgebungsvariablen auf Umgebungsvariable hinzufügen.

  2. Geben Sie den Namen und den Wert der Umgebungsvariablen ein.

  3. Klicken Sie im Bereich Airflow-Konfigurationsüberschreibungen auf Airflow Konfigurationsüberschreibung hinzufügen.

  4. Geben Sie den Bereich, den Schlüssel und den Wert für die Überschreibung der Konfigurationsoption ein.

    Beispiel:

    Bereich Schlüssel Wert
    webserver dag_orientation TB

gcloud

Beim Erstellen einer Umgebung steuern die folgenden Argumente die Umgebungsvariablen und die Airflow-Konfigurationsüberschreibungen:

  • --env-variables gibt eine durch Kommas getrennte Liste von Umgebungsvariablen an.

    Variablennamen können Groß- und Kleinbuchstaben, Ziffern und Unterstriche enthalten, dürfen jedoch nicht mit einer Ziffer beginnen.

  • --airflow-configs gibt eine durch Kommas getrennte Liste von Schlüsseln und Werten für Airflow-Konfigurationsüberschreibungen an.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.9.7-airflow-2.9.3 \
    --env-variables ENV_VARS \
    --airflow-configs CONFIG_OVERRIDES

Ersetzen Sie:

  • ENV_VARS durch eine Liste kommagetrennter NAME=VALUE-Paare für Umgebungsvariablen.
  • CONFIG_OVERRIDES durch eine Liste kommagetrennter SECTION-KEY=VALUE-Paare für Konfigurationsüberschreibungen. Trennen Sie den Namen des Konfigurationsbereichs durch ein --Symbol, gefolgt vom Schlüsselnamen. Beispiel: core-dags_are_paused_at_creation.

Beispiel:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.9.7-airflow-2.9.3 \
    --env-variables SENDGRID_MAIL_FROM=user@example.com,SENDGRID_API_KEY=example-key \
    --airflow-configs core-dags_are_paused_at_creation=True,webserver-dag_orientation=TB

API

Wenn Sie eine Umgebung erstellen, klicken Sie auf Umgebung > EnvironmentConfig-Ressource (angeben) Umgebungsvariablen und Airflow-Konfigurationsüberschreibungen.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "softwareConfig": {
      "airflowConfigOverrides": {
        "SECTION-KEY": "OVERRIDE_VALUE"
      },
      "envVariables": {
        "VAR_NAME": "VAR_VALUE",
      }
    }
  }
}

Ersetzen Sie:

  • SECTION durch den Bereich in der Konfigurationsdatei, in dem sich die Airflow-Konfigurationsoption befindet.
  • KEY durch den Namen der Airflow-Konfigurationsoption.
  • OVERRIDE_VALUE durch einen Wert der Airflow-Konfigurationsoption.
  • VAR_NAME durch den Namen der Umgebungsvariablen.
  • VAR_VALUE durch den Wert der Umgebungsvariablen.

Beispiel:

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "softwareConfig": {
      "airflowConfigOverrides": {
        "core-dags_are_paused_at_creation": "True",
        "webserver-dag_orientation": "TB"
      },
      "envVariables": {
        "SENDGRID_MAIL_FROM": "user@example.com",
        "SENDGRID_API_KEY": "example-key"
      }
    }
  }
}

Terraform

Beim Erstellen einer Umgebung steuern die folgenden Blöcke Umgebungsvariablen und Airflow-Konfigurationsüberschreibungen:

  • Der Block env_variables im Block software_config gibt Umgebungsvariablen an.

    Variablennamen können Groß- und Kleinbuchstaben, Ziffern und Unterstriche enthalten, dürfen jedoch nicht mit einer Ziffer beginnen.

  • Der Block airflow_config_overrides im Block software_config gibt Airflow-Konfigurationsüberschreibungen an.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    software_config {

      airflow_config_overrides = {
        SECTION-KEY = "OVERRIDE_VALUE"
      }

      env_variables = {
        VAR_NAME = "VAR_VALUE"
      }
    }
  }
}

Ersetzen Sie:

  • SECTION durch den Bereich in der Konfigurationsdatei, in dem sich die Airflow-Konfigurationsoption befindet.
  • KEY durch den Namen der Airflow-Konfigurationsoption.
  • OVERRIDE_VALUE durch einen Wert der Airflow-Konfigurationsoption.
  • VAR_NAME durch den Namen der Umgebungsvariablen.
  • VAR_VALUE durch den Wert der Umgebungsvariablen.

Beispiel:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    software_config {

      airflow_config_overrides = {
        core-dags_are_paused_at_creation = "True"
        webserver-dag_orientation = "TB"
      }

      env_variables = {
        SENDGRID_MAIL_FROM = "user@example.com"
        SENDGRID_API_KEY = "example-key"
      }
    }
  }
}

Schritt 11: Optional: Wartungsfenster angeben

Die Standardwartungsfenster in Cloud Composer 2 sind jeden Freitag, Samstag und Sonntag von 00:00:00 bis 04:00:00 Uhr (GMT).

So legen Sie benutzerdefinierte Wartungsfenster für Ihre Umgebung fest:

Console

Auf der Seite Umgebung erstellen

  1. Suchen Sie den Abschnitt Wartungsfenster.

  2. Wählen Sie in der Drop-down-Liste Zeitzone eine Zeitzone für Wartungsfenster aus.

  3. Legen Sie Startzeit, Tage und Länge fest, sodass die kombinierte Zeit für den angegebenen Zeitplan mindestens 12 Stunden in einem 7-tägigen rollierenden Zeitfenster beträgt. Zum Beispiel bietet ein Zeitraum von vier Stunden jeden Montag, Mittwoch und Freitag die erforderliche Zeitmenge.

gcloud

Mit den folgenden Argumenten werden die Wartungsfensterparameter definiert:

  • --maintenance-window-start legt den Beginn eines Wartungsfensters fest.
  • --maintenance-window-end legt das Ende eines Wartungsfensters fest.
  • --maintenance-window-recurrence legt die Wiederholung des Wartungsfensters fest.
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.9.7-airflow-2.9.3 \
    --maintenance-window-start 'DATETIME_START' \
    --maintenance-window-end 'DATETIME_END' \
    --maintenance-window-recurrence 'MAINTENANCE_RECURRENCE'

Ersetzen Sie:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.
  • DATETIME_START durch das Startdatum und die Uhrzeit im Eingabeformat Datum/Uhrzeit. Es wird nur die angegebene Uhrzeit verwendet. Das angegebene Datum wird ignoriert.
  • DATETIME_END durch das Enddatum und die Uhrzeit im Eingabeformat Datum/Uhrzeit. Es wird nur die angegebene Uhrzeit verwendet. Das angegebene Datum wird ignoriert. Das angegebene Datum und die angegebene Uhrzeit müssen nach dem Startdatum liegen.
  • MAINTENANCE_RECURRENCE mit einer RFC 5545 RRULE für Wiederholungsversuche von Wartungsfenstern. Cloud Composer unterstützt zwei Formate:

  • Das Format FREQ=DAILY gibt eine tägliche Wiederholung an.

  • Das Format FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA gibt eine Wiederholung an ausgewählten Wochentagen an.

Im folgenden Beispiel wird ein Wartungsfenster von 6 Stunden zwischen 01:00 und 07:00 Uhr (UTC) an Mittwochen, Samstagen und Sonntagen angegeben. 1. Januar 2023 wird ignoriert.

gcloud composer environments create example-environment \
  --location us-central1 \
  --image-version composer-2.9.7-airflow-2.9.3 \
  --maintenance-window-start '2023-01-01T01:00:00Z' \
  --maintenance-window-end '2023-01-01T07:00:00Z' \
  --maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=SU,WE,SA'

API

Geben Sie beim Erstellen einer Umgebung in der Ressource Umgebung > Umgebungskonfiguration Wartungsfensterparameter an:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "maintenanceWindow": {
        "startTime": "DATETIME_START",
        "endTime": "DATETIME_END",
        "recurrence": "MAINTENANCE_RECURRENCE"
    }
  }
}

Ersetzen Sie:

  • DATETIME_START durch das Startdatum und die Uhrzeit im Eingabeformat Datum/Uhrzeit. Es wird nur die angegebene Uhrzeit verwendet. Das angegebene Datum wird ignoriert.
  • DATETIME_END durch das Enddatum und die Uhrzeit im Eingabeformat Datum/Uhrzeit. Es wird nur die angegebene Uhrzeit verwendet. Das angegebene Datum wird ignoriert. Das angegebene Datum und die angegebene Uhrzeit müssen nach dem Startdatum liegen.
  • MAINTENANCE_RECURRENCE mit einer RFC 5545 RRULE für Wiederholungsversuche von Wartungsfenstern. Cloud Composer unterstützt zwei Formate:

  • Das Format FREQ=DAILY gibt eine tägliche Wiederholung an.

  • Das Format FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA gibt eine Wiederholung an ausgewählten Wochentagen an.

Im folgenden Beispiel wird ein Wartungsfenster von 6 Stunden zwischen 01:00 und 07:00 Uhr (UTC) an Mittwochen, Samstagen und Sonntagen angegeben. Das Datum 1. Januar 2023 wird ignoriert.

Beispiel:

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "maintenanceWindow": {
        "startTime": "2023-01-01T01:00:00Z",
        "endTime": "2023-01-01T07:00:00Z",
        "recurrence": "FREQ=WEEKLY;BYDAY=SU,WE,SA"
    }
  }
}

Terraform

Im Block maintenance_window werden die Wartungsfenster für Ihre Umgebung angegeben:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    maintenance_window {
      start_time = "DATETIME_START"
      end_time = "DATETIME_END"
      recurrence = "MAINTENANCE_RECURRENCE"
    }
  }
}

Ersetzen Sie:

  • DATETIME_START durch das Startdatum und die Uhrzeit im Eingabeformat Datum/Uhrzeit. Es wird nur die angegebene Uhrzeit verwendet. Das angegebene Datum wird ignoriert.
  • DATETIME_END durch das Enddatum und die Uhrzeit im Eingabeformat Datum/Uhrzeit. Es wird nur die angegebene Uhrzeit verwendet. Das angegebene Datum wird ignoriert. Das angegebene Datum und die angegebene Uhrzeit müssen nach dem Startdatum liegen.
  • MAINTENANCE_RECURRENCE mit einer RFC 5545 RRULE für Wiederholungsversuche von Wartungsfenstern. Cloud Composer unterstützt zwei Formate:

    • Das Format FREQ=DAILY gibt eine tägliche Wiederholung an.
    • Das Format FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA gibt eine Wiederholung an ausgewählten Wochentagen an.

Im folgenden Beispiel wird ein Wartungsfenster von 6 Stunden zwischen 01:00 und 07:00 Uhr (UTC) an Mittwochen, Samstagen und Sonntagen angegeben. 1. Januar 2023 wird ignoriert.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {
    maintenance_window {
      start_time = "2023-01-01T01:00:00Z"
      end_time = "2023-01-01T07:00:00Z"
      recurrence = "FREQ=WEEKLY;BYDAY=SU,WE,SA"
    }
  }
}

Schritt 12: (Optional) Einbindung der Datenabfolge

Data Lineage ist ein Dataplex-Feature, mit dem Sie Datenbewegungen verfolgen können.

Die Integration der Data Lineage ist verfügbar in Cloud Composer 2 Version 2.1.2 und höher mit Airflow-Versionen 2.2.5 und .

Die Einbindung der Datenabfolge wird in einer neuen Cloud Composer-Umgebung automatisch aktiviert, wenn die folgenden Bedingungen erfüllt sind:

  • Die Data Lineage API ist in Ihrem Projekt aktiviert. Weitere Informationen finden Sie in der Dataplex-Dokumentation unter Data Lineage API aktivieren.

  • Ein benutzerdefiniertes Abstammungs-Back-End ist in Airflow nicht konfiguriert.

Sie können die Integration der Datenabfolge beim Erstellen einer Umgebung deaktivieren. Für Wenn Sie das automatische Verhalten außer Kraft setzen oder Aktivieren Sie die Data Lineage später, nachdem die Umgebung fertiggestellt wurde. erstellt.

Console

So deaktivieren Sie die Einbindung von Data Lineage auf der Seite Umgebung erstellen:

  1. Maximieren Sie im Bereich Erweiterte Konfiguration das Element Erweiterte Konfiguration anzeigen.

  2. Wählen Sie im Abschnitt Dataplex Data Lineage Integration die Option Integration von Dataplex Data Lineage deaktivieren

gcloud

Wenn Sie eine Umgebung erstellen, wird mit dem Argument --disable-cloud-data-lineage-integration die Integration der Datenabfolge deaktiviert.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.9.7-airflow-2.9.3 \
    --disable-cloud-data-lineage-integration

Ersetzen Sie:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.
  • LOCATION durch die Region, in der sich die Umgebung befindet.

Beispiel:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.9.7-airflow-2.9.3 \
    --disable-cloud-data-lineage-integration

Schritt 13: (Optional) Datenverschlüsselung (CMEK) konfigurieren

Standardmäßig werden Daten in Ihrer Umgebung mit einem von Google bereitgestellten Schlüssel verschlüsselt.

Folgen Sie der unter Vom Kunden verwaltete Verschlüsselungsschlüssel verwenden beschriebenen Anleitung, um vom Kunden verwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEK) zum Verschlüsseln von Daten in Ihrer Umgebung zu verwenden.

Schritt 14: (Optional) Bucket einer benutzerdefinierten Umgebung verwenden

Wenn Sie eine Umgebung erstellen, wird von Cloud Composer automatisch ein Bucket für Ihre Umgebung erstellt.

Alternativ können Sie einen benutzerdefinierten Cloud Storage-Bucket aus Ihrem Projekt arbeiten. Dieser Bucket wird in Ihrer Umgebung auf die gleiche Weise verwendet wie der automatisch erstellte Bucket.

Wenn Sie den Bucket einer benutzerdefinierten Umgebung verwenden möchten, folgen Sie der Anleitung unter Bucket einer benutzerdefinierten Umgebung verwenden.

Schritt 15: Optional: Umgebungslabels angeben

Sie können Ihren Umgebungen Labels zuweisen, um die Abrechnungskosten basierend auf diesen Labels aufzuschlüsseln.

Console

Gehen Sie auf der Seite Umgebung erstellen im Bereich Labels so vor:

  1. Klicken Sie auf Label hinzufügen.

  2. Geben Sie in den Feldern Schlüssel und Wert Schlüssel/Wert-Paare für die Umgebungslabels an.

gcloud

Beim Erstellen einer Umgebung gibt das Argument --labels eine durch Kommas getrennte Liste von Schlüsseln und Werten mit Umgebungslabels an.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.9.7-airflow-2.9.3 \
    --labels LABELS

Ersetzen Sie:

  • LABELS durch eine Liste kommagetrennter KEY=VALUE-Paare für Umgebungslabels.

Beispiel:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.9.7-airflow-2.9.3 \
    --labels owner=engineering-team,env=production

API

Geben Sie beim Erstellen einer Umgebung in der Ressource Umgebung Labels für Ihre Umgebung an.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "labels": {
    "LABEL_KEY": "LABEL_VALUE"
  }
}

Ersetzen Sie:

  • LABEL_KEY durch einen Schlüssel des Umgebungslabels.
  • LABEL_VALUE durch einen Wert des Umgebungslabels.

Beispiel:


// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "labels": {
    "owner": "engineering-team",
    "env": "production"
  }
}

Terraform

Geben Sie beim Erstellen einer Umgebung Labels im Block labels (außerhalb des Blocks config) an.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  labels = {
    LABEL_KEY = "LABEL_VALUE"
  }

}

Ersetzen Sie:

  • LABEL_KEY durch einen Schlüssel des Umgebungslabels.
  • LABEL_VALUE durch einen Wert des Umgebungslabels.

Beispiel:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  labels = {
    owner = "engineering-team"
    env = "production"
  }

}

Nächste Schritte