Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Auf dieser Seite wird erläutert, wie Sie eine Cloud Composer-Umgebung erstellen.
- Weitere Informationen zu Umgebungen finden Sie unter Umgebungsarchitektur.
- Weitere Informationen zum Erstellen einer Umgebung mit Terraform finden Sie unter Umgebungen erstellen (Terraform).
Hinweise
Aktivieren Sie die Cloud Composer API. Zur vollständigen Liste der von Cloud Composer verwendeten Dienste finden Sie unter Für Cloud Composer erforderliche Dienste.
Die ungefähre Erstellungszeit für eine Umgebung beträgt 25 Minuten.
Beim Erstellen der Umgebung geben Sie ein Dienstkonto an. Cloud Composer bindet dieses Konto an ein Kubernetes-Dienstkonto des Clusters Ihrer Umgebung.
Standardmäßig verwenden Cloud Composer-Umgebungen das von Google verwaltete Compute Engine-Standarddienstkonto. Wir empfehlen, ein nutzerverwaltetes Dienstkonto zu erstellen, das eine Rolle für Cloud Composer hat, und diese für Ihre Umgebungen zu verwenden.
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
Rufen Sie in der Google Cloud Console die Seite Umgebung erstellen auf.
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.
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.
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.9.3-build.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-3-airflow-2.9.3-build.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-3-airflow-2.9.3-build.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-3-airflow-2.9.3-build.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-3-airflow-2.9.3-build.3 \
--service-account "example-account@example-project.iam.gserviceaccount.com"
API
Geben Sie beim Erstellen einer Umgebung in der Ressource Umgebung > Umgebungskonfiguration 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 ä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-Trigger Überwacht asynchron alle ausgesetzten Aufgaben in Ihrem zu verbessern. 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.
Airflow-DAG-Prozessor. Verarbeitet DAG-Dateien und wandelt sie in DAG-Objekte. In Cloud Composer 3 wird dieser Teil des Schedulers als separate Umgebungskomponente ausgeführt.
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:
Klicken Sie im Bereich Umgebungsressourcen auf Benutzerdefiniert.
Legen Sie im Abschnitt Planer die Anzahl der zu verwendenden Planer und die Ressourcenzuweisung für CPU, Arbeitsspeicher und Speicher fest.
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 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.
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.
Geben Sie im Bereich Webserver die Anzahl der CPUs, den Arbeitsspeicher und den Speicher für den Webserver an.
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
Wählen Sie im Bereich Kerninfrastruktur in der Drop-down-Liste Umgebungsgröße die Umgebungsgröße aus.
gcloud
Wenn Sie eine Umgebung erstellen, 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-Triggerer in Ihrem zu verbessern. Der Standardwert für dieses Flag ist0
. 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
und10
. - Verwenden Sie für besonders resiliente Umgebungen
0
oder einen Wert zwischen2
und10
.
- Verwenden Sie für Umgebungen mit Standardausfallsicherheit einen Wert zwischen
--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 ist0.5
--triggerer-memory
gibt die Größe des Arbeitsspeichers für einen Airflow-Trigger in GB an. Der Standardwert ist0.5
.Der erforderliche Mindestarbeitsspeicher entspricht der Anzahl der CPUs, die für die Triggerer. 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 Wert1
festlegen, Der Mindestwert für--triggerer-memory
ist1
und der Höchstwert ist6.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.9.3-build.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 \
--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
mitsmall
,medium
oderlarge
.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 Auslöser 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.9.3-build.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 \
--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
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
},
"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 ist0
. Sie benötigen Trigger, wenn Sie zurückstellbare Operatoren in Ihren DAGs verwenden möchten.- Verwenden Sie für standardmäßige Ausfallsicherheitsumgebungen einen Wert zwischen
0
und10
. - Verwenden Sie für besonders resiliente Umgebungen
0
oder einen Wert zwischen2
und10
.
Wenn Sie mindestens einen Auslöser verwenden, müssen Sie auch die Parameter
TRIGGERER_CPU
undTRIGGERER_MEMORY
angeben:- Verwenden Sie für standardmäßige Ausfallsicherheitsumgebungen einen Wert zwischen
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
auf1
festlegen, Der Mindestwert fürTRIGGERER_MEMORY
ist1
und der Höchstwert ist6.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
oderENVIRONMENT_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.
- Das Feld
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-Trigger an. - 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-Prozessor an.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 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.
- Das
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 Auslöser 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
oderENVIRONMENT_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:
Maximieren Sie im Bereich Erweiterte Konfiguration das Element Erweiterte Konfiguration anzeigen.
Wählen Sie in der Liste Airflow-Datenbankzone eine bevorzugte Cloud SQL-Zone aus.
gcloud
Beim Erstellen einer Umgebung gibt das Argument --cloud-sql-preferred-zone
eine bevorzugte Cloud SQL-Zone an.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.9.3-build.3 \
--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.9.3-build.3 \
--cloud-sql-preferred-zone us-central1-a
API
Geben Sie beim Erstellen einer Umgebung in der Ressource Umgebung > Datenbankkonfiguration die bevorzugte Cloud SQL-Zone an.
{
"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 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
: die bevorzugte Cloud SQL-Zone. Diese Zone muss sich in der Region befinden, in der sich die Umgebung befindet.
Schritt 5: Optional: Netzwerk der Umgebung konfigurieren
Sie können das Netzwerk für Cloud Composer 3 auf folgende Arten konfigurieren:
- In einer öffentlichen IP-Umgebung können die Airflow-Komponenten Ihrer Umgebung auf das Internet zugreifen.
- In einer privaten IP-Umgebung haben die Airflow-Komponenten Ihrer Umgebung keinen Zugriff auf das Internet.
- Umgebungen mit privaten und öffentlichen IP-Adressen können als separate Option mit Ihrem VPC-Netzwerk verbunden werden.
- Sie können den internen IP-Bereich Ihrer Umgebung angeben. Dieser Bereich kann später nicht mehr geändert werden.
Sie können Zugriff auf das Internet bei der Installation von PyPI-Paketen ermöglichen Wenn Sie diese Option aktivieren, können in Ihrer privaten IP-Umgebung weiterhin PyPI-Pakete aus dem Python-Paketindex installiert werden.
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.
Console
Ihr Netzwerk muss für den Umgebungstyp konfiguriert sein die Sie erstellen möchten.
Maximieren Sie im Abschnitt Netzwerkkonfiguration das Element Netzwerkkonfiguration anzeigen.
Wenn Sie Ihre Umgebung mit einem VPC-Netzwerk verbinden möchten, wählen Sie im Feld Netzwerkanpassung eine Netzwerkanpassung aus. Sie können auch einen neuen Netzwerkanhang erstellen. Weitere Informationen finden Sie unter Umgebung mit einem VPC-Netzwerk verbinden
Wenn Sie eine private IP-Umgebung erstellen möchten, geben Sie im Netzwerktyp die Option Private IP-Umgebung aus.
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.
--composer-internal-ipv4-cidr-block
gibt die internen IP-Bereich der Umgebung. Dieser Bereich wird von Cloud Composer in der Mandantenprojekt der Umgebung
Beispiel (private IP-Umgebung) mit einem verbundenen VPC-Netzwerk)
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.9.3-build.3 \
--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 RFC 1035 entsprechen.
Sie können beispielsweise Netzwerk-Tags hinzufügen, wenn Sie den Traffic für eine private IP-Umgebung mit Firewallregeln einschränken möchten.
Console
Auf der Seite Umgebung erstellen:
- Suchen Sie den Bereich Netzwerkkonfiguration.
- Geben Sie im Feld Netzwerk-Tags 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 angewendet werden Knoten-VMs.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.9.3-build.3 \
--tags TAGS
Ersetzen Sie:
TAGS
durch eine durch Kommas getrennte Liste von Netzwerk-Tags ersetzen.
Beispiel:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.9.3-build.3 \
--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
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 Blocknode_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 ersetzen.
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 mithilfe privater IP-Adressen konfigurieren.
Console
Auf der Seite Umgebung erstellen:
Erweitern Sie im Abschnitt Netzwerkkonfiguration den Bereich Netzwerk anzeigen Konfiguration.
Gehen Sie im Abschnitt Webserver-Netzwerkzugriffssteuerung so vor:
Wenn Sie den Zugriff auf den Airflow-Webserver von allen IP-Adressen aus ermöglichen 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.
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 Zugriff auf Airflow von allen IP-Adressen aus. 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.9.3-build.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-3-airflow-2.9.3-build.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
Geben Sie beim Erstellen einer Umgebung in der Ressource Umgebung > Umgebungskonfiguration die Webserverzugriffsparameter an.
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 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 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:
Klicken Sie im Bereich Umgebungsvariablen auf Umgebungsvariable hinzufügen.
Geben Sie den Namen und den Wert der Umgebungsvariablen ein.
Klicken Sie im Bereich Airflow-Konfigurationsüberschreibungen auf Airflow Konfigurationsüberschreibung hinzufügen.
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.9.3-build.3 \
--env-variables ENV_VARS \
--airflow-configs CONFIG_OVERRIDES
Ersetzen Sie:
ENV_VARS
durch eine Liste kommagetrennterNAME=VALUE
-Paare für Umgebungsvariablen.CONFIG_OVERRIDES
durch eine Liste kommagetrennterSECTION-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.9.3-build.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
Geben Sie beim Erstellen einer Umgebung in der Ressource Umgebung > Umgebungskonfiguration Umgebungsvariablen und Airflow-Konfigurationsüberschreibungen an.
{
"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 Blocksoftware_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 Blocksoftware_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 sind in der lokalen Zeitzone der Region angegeben, in der sich Ihre Umgebung befindet. Die Sommerzeit wird dabei ignoriert.
- Wartungsfenster am Dienstag, Mittwoch, Donnerstag und Freitag gelten ab dem 00:00:00 bis 02:00:00.
- Am Samstag, Sonntag und Montag beginnen Wartungsfenster ab 00:00:00 bis 04:00:00.
So legen Sie benutzerdefinierte Wartungsfenster für Ihre Umgebung fest:
Console
Auf der Seite Umgebung erstellen
Suchen Sie den Abschnitt Wartungsfenster.
Wählen Sie in der Drop-down-Liste Zeitzone eine Zeitzone für Wartungsfenster aus.
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.9.3-build.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 ist ein sechsstündiges Wartungsfenster zwischen 01:00 und Mittwoch, Samstag und Sonntag um 07:00 Uhr (UTC) Das Datum 1. Januar 2023 wird ignoriert.
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.9.3-build.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
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) 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
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.
- Das Format
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
Die Datenherkunft ist eine Dataplex-Funktion, mit der Sie die Datenbewegung verfolgen können.
Die Integration von Data Lineage ist in allen Versionen verfügbar von Cloud Composer 3.Die Einbindung von Data Lineage ist in einer neuen Version automatisch aktiviert. 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 ist.
Sie können die Einbindung von Data Lineage beim Erstellen einer Umgebung deaktivieren. Beispielsweise, wenn Sie das automatische Verhalten überschreiben oder die Datenabstammung später aktivieren möchten, nachdem die Umgebung erstellt wurde.
Console
So deaktivieren Sie die Data Lineage-Integration auf der Seite Umgebung erstellen:
Maximieren Sie im Bereich Erweiterte Konfiguration das Element Erweiterte Konfiguration anzeigen.
Wählen Sie im Bereich Dataplex Data Lineage-Einbindung die Option Einbindung in Dataplex Data Lineage deaktivieren aus.
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.9.3-build.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-3-airflow-2.9.3-build.3 \
--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.
Wenn Sie den Bucket einer benutzerdefinierten Umgebung verwenden möchten, folgen Sie der Anleitung unter Bucket einer benutzerdefinierten Umgebung verwenden.
Schritt 13: 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:
Klicken Sie auf Label hinzufügen.
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.9.3-build.3 \
--labels LABELS
Ersetzen Sie:
LABELS
durch eine Liste kommagetrennterKEY=VALUE
-Paare für Umgebungslabels.
Beispiel:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.9.3-build.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
- Fehlerbehebung beim Erstellen der Umgebung
- Freigegebene VPC konfigurieren
- VPC Service Controls konfigurieren
- DAGs hinzufügen und aktualisieren
- Auf die Airflow-UI zugreifen
- Umgebungen aktualisieren und löschen
- Informationen zu Cloud Composer-Versionen