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.

  • 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-3-airflow-2.7.3-build.8

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-3-airflow-2.7.3-build.8"
    }
  }
}

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-3-airflow-2.7.3-build.8"
    }
  }
}

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 der Kubernetes-Dienstkonto und verwenden die Bindungen, um auf Ressourcen in Ihrem Google Cloud-Projekt zu erstellen, z. B. DAG-Definitionsdateien in Ihrem im Bucket der 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-3-airflow-2.7.3-build.8 \
    --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-3-airflow-2.7.3-build.8 \
    --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: 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 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. Wählen Sie eine größere Umgebungsgröße aus, wenn Sie für eine große Anzahl von DAGs und Aufgaben.

  • 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 ausgesetzten Aufgaben in Ihrem zu verbessern. Wenn Sie mindestens eine Triggerer-Instanz in Ihrem (oder mindestens zwei in Umgebungen mit extrem hoher Ausfallsicherheit), können Sie Zurücksetzbare Operatoren in Ihren DAGs verwenden.

    • Airflow-DAG-Prozessor. Verarbeitet DAG-Dateien und wandelt sie in DAG-Objekte. In Cloud Composer 3 wird dieser Teil des Planers als separate Umgebungskomponente.

    • 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 verwenden möchten. und die Ressourcenzuweisung für CPU, Arbeitsspeicher und Speicher.

    3. Verwenden Sie im Abschnitt Trigger das Feld Anzahl der Trigger. um die Anzahl der Trigger in Ihrer Umgebung einzugeben. Sie können diese Zahl auf 0 setzen, wenn Sie Rücksetzbare Operatoren in Ihren DAGs verwenden

      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 an. in Ihrer Umgebung und die Menge an CPUs, Arbeitsspeicher und Speicherplatz für für jeden DAG-Prozessor.

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

    6. Geben Sie im Abschnitt Worker Folgendes an:

      • Die minimale und maximale Anzahl von Workern für Autoscaling-Limits in für Ihre 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

Wenn Sie eine Umgebung erstellen, wird mit den folgenden Argumenten der 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-Triggerer in Ihrem zu verbessern. Der Standardwert für dieses Flag ist 0. Sie benötigen Triggerer, wenn Sie Aussetzbare Operatoren in Ihren DAGs verwenden

    • Verwenden Sie für standardmäßige Ausfallsicherheitsumgebungen einen Wert zwischen 0 und 10.
    • Verwenden Sie für Umgebungen mit extrem hoher Ausfallsicherheit 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 für die Triggerer. Der maximal zulässige Wert entspricht der Anzahl der Triggerer-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.

  • --dag-processor-cpu gibt die Anzahl der CPUs für den DAG-Prozessor an.

  • --dag-processor-memory gibt die Größe des Arbeitsspeichers für den DAG an. Prozessor.

  • --dag-processor-storage gibt die Größe des Speicherplatzes für den DAG an. Prozessor.

  • --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-3-airflow-2.7.3-build.8 \
    --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 \
    --dag-processor-cpu DAG_PROCESSOR_CPU \
    --dag-processor-memory DAG_PROCESSOR_MEMORY \
    --dag-processor-storage DAG_PROCESSOR_STORAGE \
    --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.

  • DAG_PROCESSOR_CPU durch die Anzahl der CPUs für den DAG-Prozessor.

  • DAG_PROCESSOR_MEMORY durch die Größe des Arbeitsspeichers für den DAG Prozessor.

  • DAG_PROCESSOR_STORAGE durch die Menge an Speicherplatz für den DAG Prozessor.

  • 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-3-airflow-2.7.3-build.8 \
    --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 \
    --dag-processor-cpu 0.5 \
    --dag-processor-memory 2GB \
    --dag-processor-storage 1GB \
    --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

Wenn Sie eine Umgebung erstellen, klicken Sie auf Umgebung > EnvironmentConfig > Ressource WorkloadsConfig, Umgebung angeben Skalierungs- und Leistungsparameter.

{
  "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
      },
      "dagProcessor": {
        "count": 1,
        "cpu": DAG_PROCESSOR_CPU,
        "memoryGb": DAG_PROCESSOR_MEMORY,
        "storageGb": DAG_PROCESSOR_STORAGE
      },
      "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 Triggerer, wenn Sie Aussetzbare Operatoren in Ihren DAGs verwenden

    • Verwenden Sie für standardmäßige Ausfallsicherheitsumgebungen einen Wert zwischen 0 und 10.
    • Verwenden Sie für Umgebungen mit extrem hoher Ausfallsicherheit 0 oder einen Wert zwischen 2 und 10.

    Wenn Sie mindestens einen Trigger verwenden, müssen Sie auch den TRIGGERER_CPU- und TRIGGERER_MEMORY-Parameter:

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

  • TRIGGERER_MEMORY konfiguriert die Größe des Arbeitsspeichers für Triggerer. 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.

  • DAG_PROCESSOR_CPU durch die Anzahl der CPUs für den DAG-Prozessor in vCPU Einheiten.

  • DAG_PROCESSOR_MEMORY durch die Größe des Arbeitsspeichers für den DAG Prozessor in GB.

  • DAG_PROCESSOR_STORAGE durch die Menge an Speicherplatz für den DAG Prozessor 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:

// 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
      },
      "dagProcessor": {
        "count": 1,
        "cpu": 0.5,
        "memoryGb": 2,
        "storageGb": 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 Ihrem zu verbessern.
    • Das Feld triggerer.cpu gibt die Anzahl der CPUs für einen Airflow an Triggerer.
    • Das Feld triggerer.memory_gb gibt die Größe des Arbeitsspeichers für eine Airflow-Triggerer.
    • Das Feld triggerer.count gibt die Anzahl der Trigger in Ihrem zu verbessern.

    • Das Feld dag_processor.cpu gibt die Anzahl der CPUs für einen DAG an. Prozessor.

    • Das Feld dag_processor.memory_gb gibt die Größe des Arbeitsspeichers für einen DAG-Prozessor.

    • Das Feld dag_processor.storage_gb gibt die Größe des Speicherplatzes an. für einen DAG-Prozessor.

    • Das Feld dag_processor.count gibt die Anzahl der DAG-Prozessoren an.

    • 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 die Größe des Speicherplatzes an. für den Airflow-Webserver.

    • 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 4: (Optional) Zone für die Datenbank der Umgebung angeben

Sie können eine bevorzugte Cloud SQL-Zone für Ihre Umgebung angeben.

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-3-airflow-2.7.3-build.8 \
    --cloud-sql-preferred-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.

Beispiel:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.7.3-build.8 \
    --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: bevorzugte Cloud SQL-Zone. Diese Zone muss sich in der Region, 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 das Feld zone in der database_config block gibt die bevorzugte Cloud SQL-Zone an.

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 5: Optional: Netzwerk der Umgebung konfigurieren

Für das Konfigurieren des Cloud Composer 3-Netzwerks haben Sie folgende Möglichkeiten:

Console

  1. Ihr Netzwerk muss für den Umgebungstyp konfiguriert sein die Sie erstellen möchten.

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

  3. Wenn Sie Ihre Umgebung mit einem VPC-Netzwerk verbinden möchten, Netzwerkanhang einen Netzwerkanhang aus. Sie können auch einen neuen Netzwerkanhang erstellen. Weitere Informationen finden Sie unter Umgebung mit einem VPC-Netzwerk verbinden

  4. Wenn Sie eine private IP-Umgebung erstellen möchten, geben Sie im Netzwerktyp die Option Private IP-Umgebung aus.

  5. Wie Sie Netzwerk-Tags hinzufügen, erfahren Sie unter Netzwerk-Tags hinzufügen. erhalten Sie weitere Informationen.

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.

Beispiel (Private IP-Umgebung mit einem verbundenen VPC-Netzwerk)

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.7.3-build.8 \
    --enable-private-environment \
    --network NETWORK_ID \
    --subnetwork SUBNETWORK_ID \

Ersetzen Sie:

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

Schritt 6: 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 den RFC 1035.

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

Wenn Sie eine Umgebung erstellen, werden Netzwerk-Tags mit folgenden Argumenten gesteuert:

  • --tags gibt eine durch Kommas getrennte Liste von Netzwerk-Tags an, die auf alle angewendet werden Knoten-VMs.
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.7.3-build.8 \
    --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-3-airflow-2.7.3-build.8 \
    --tags group1,production

API

Wenn Sie eine Umgebung erstellen, klicken Sie auf Umgebung > EnvironmentConfig-Ressource (angeben) Netzwerk-Tags für Ihre Umgebung.

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

Ersetzen Sie:

  • TAG durch ein 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

Wenn Sie eine Umgebung erstellen, definieren folgende 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 7: 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 mit privaten IP-Adressen konfigurieren.

Console

Auf der Seite Umgebung erstellen:

  1. Erweitern Sie im Abschnitt Netzwerkkonfiguration den Bereich Netzwerk anzeigen Konfiguration.

  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. In Beschreibung eine optionale Beschreibung Bereich. Wenn Sie mehr als einen Bereich angeben möchten, klicken Sie auf IP-Adresse hinzufügen Bereich.

    • Um den Zugriff für alle IP-Adressen zu verbieten, wählen Sie Zugriff nur zulassen von bestimmte IP-Adressen und klicken Sie neben dem leeren Feld auf Element löschen. Bereichseintrag.

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-3-airflow-2.7.3-build.8 \
    --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-3-airflow-2.7.3-build.8 \
    --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 von allen IP-Adressen aus Zugriff auf den Airflow-Webserver gewähren möchten, lassen Sie webServerNetworkAccessControl weg.

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

  • 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 8: 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-3-airflow-2.7.3-build.8 \
    --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-3-airflow-2.7.3-build.8 \
    --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 9: Optional: Wartungsfenster angeben

Standardmäßige Wartungsfenster in Cloud Composer 3 wie folgt definiert:

  • Alle Zeiten werden in der lokalen Zeitzone der Region angegeben, in der sich Ihre Umgebung befindet befindet, aber ohne Sommerzeit.
  • Am Dienstag, Mittwoch, Donnerstag und Freitag sind die Wartungsfenster von 00:00:00 bis 02:00:00.
  • Wartungsfenster am Samstag, Sonntag und Montag beziehen sich auf 00:00:00 bis 04:00:00.

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-3-airflow-2.7.3-build.8 \
    --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 ist ein sechsstündiges Wartungsfenster zwischen 01:00 und Mittwoch, Samstag und Sonntag um 07:00 Uhr (UTC) 1. Januar 2023 wird ignoriert.

gcloud composer environments create example-environment \
  --location us-central1 \
  --image-version composer-3-airflow-2.7.3-build.8 \
  --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

Wenn Sie eine Umgebung erstellen, Umgebung > EnvironmentConfig-Ressource (angeben) Parameter für Wartungsfenster:

{
  "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 ist ein sechsstündiges Wartungsfenster zwischen 01:00 und Mittwoch, Samstag und Sonntag um 07:00 Uhr (UTC) 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

Der Block maintenance_window gibt die Wartungsfenster für Ihre Umgebung:

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 ist ein sechsstündiges Wartungsfenster zwischen 01:00 und Mittwoch, Samstag und Sonntag um 07:00 Uhr (UTC) 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 10: (Optional) Data Lineage-Einbindung

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

Die Integration von Data Lineage ist in allen Versionen verfügbar von Cloud Composer 3.

Die Einbindung von Data Lineage ist automatisch aktiviert in einer neuen Cloud Composer-Umgebung, wenn die folgenden Bedingungen erfüllt sind:

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

  • Ein benutzerdefinierter Lineage-Back-End nicht in Airflow konfiguriert.

Sie können die Einbindung von Data Lineage 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 (Integration von Dataplex Data Lineage) die Option Integration von Dataplex Data Lineage deaktivieren

gcloud

Wenn Sie eine Umgebung erstellen, wird vom --disable-cloud-data-lineage-integration Argument deaktiviert die Data Lineage-Integration.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.7.3-build.8 \
    --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-3-airflow-2.7.3-build.8 \
    --disable-cloud-data-lineage-integration

Schritt 11: (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 12: (Optional) Bucket einer benutzerdefinierten Umgebung verwenden

Beim Erstellen einer Umgebung erstellt Cloud Composer einen Bucket für Ihre Umgebung automatisch anpassen.

Alternativ können Sie einen benutzerdefinierten Cloud Storage-Bucket aus Ihrem Projekt arbeiten. Ihre Umgebung verwendet diesen Bucket genauso wie den automatisch erstellten Bucket Bucket erstellt.

Um einen benutzerdefinierten Umgebungs-Bucket zu verwenden, folgen Sie der Anleitung unter Bucket einer benutzerdefinierten Umgebung verwenden

Schritt 13: Optional: Umgebungslabels angeben

Sie können Ihren Umgebungen Labels zuweisen, die Abrechnungskosten anhand dieser 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-3-airflow-2.7.3-build.8 \
    --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-3-airflow-2.7.3-build.8 \
    --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