Apache Airflow-DAG in Managed Airflow (3. Generation) ausführen (Google Cloud CLI)
Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)
In diesem Schnellstart erfahren Sie, wie Sie eine Managed Service for Apache Airflow-Umgebung erstellen und einen Apache Airflow-DAG in Managed Airflow (3. Generation) ausführen.
Wenn Sie neu bei Airflow sind, finden Sie in der Apache Airflow-Dokumentation unter Airflow-Konzepte weitere Informationen zu Airflow-Konzepten, -Objekten und deren Verwendung.
Wenn Sie stattdessen die Console verwenden Google Cloud möchten, lesen Sie den Abschnitt Apache Airflow-DAG in Managed Service for Apache Airflow ausführen.
Wenn Sie eine Umgebung mit Terraform erstellen möchten, lesen Sie den Abschnitt Umgebungen erstellen (Terraform).
Hinweis
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Erstellen Sie ein Google Cloud Projekt oder wählen Sie eines aus.
Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können jedes Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“ (
roles/resourcemanager.projectCreator), die die Berechtigungresourcemanager.projects.createenthält. Weitere Informationen zum Zuweisen von Rollen
-
So erstellen Sie ein Google Cloud -Projekt:
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Google Cloud -Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch den Namen Ihres Projekts in Google Cloud .
-
Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Erstellen Sie ein Google Cloud Projekt oder wählen Sie eines aus.
Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können jedes Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“ (
roles/resourcemanager.projectCreator), die die Berechtigungresourcemanager.projects.createenthält. Weitere Informationen zum Zuweisen von Rollen
-
So erstellen Sie ein Google Cloud -Projekt:
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Google Cloud -Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch den Namen Ihres Projekts in Google Cloud .
-
Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.
-
Aktivieren Sie die Managed Airflow API:
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Weitere Informationen zum Zuweisen von Rollengcloud services enable composer.googleapis.com
-
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ausführen der Kurzanleitung benötigen:
-
So weisen Sie IAM-Rollen und -Berechtigungen zu: Projekt-IAM-Administrator (
roles/resourcemanager.projectIamAdmin) -
So erstellen Sie ein Dienstkonto für die Managed Airflow-Umgebung:
Dienstkonten erstellen (
roles/iam.serviceAccountCreator) -
So erstellen und verwalten Sie die Managed Airflow-Umgebung:
- Administrator für Umgebung und Storage-Objekte (
roles/composer.environmentAndStorageObjectAdmin) - Dienstkontonutzer (
roles/iam.serviceAccountUser)
- Administrator für Umgebung und Storage-Objekte (
-
So rufen Sie Logs auf:
Loganzeige (
roles/logging.viewer)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
-
So weisen Sie IAM-Rollen und -Berechtigungen zu: Projekt-IAM-Administrator (
Dienstkonto für eine Umgebung erstellen
Wenn Sie eine Umgebung erstellen, geben Sie ein Dienstkonto an. Dieses Dienstkonto wird als Dienstkonto der Umgebung bezeichnet. Ihre Umgebung verwendet dieses Dienstkonto für die meisten Vorgänge.
Das Dienstkonto für Ihre Umgebung ist kein Nutzerkonto. Ein Dienstkonto ist ein spezieller Kontotyp, der nicht von einer Person, sondern von einer Anwendung oder einer virtuellen Maschine (VM)-Instanz verwendet wird.
So erstellen Sie ein Dienstkonto für Ihre Umgebung:
Erstellen Sie ein neues Dienstkonto, wie in der Dokumentation zu Identity and Access Management beschrieben.
Weisen Sie ihm eine Rolle zu, wie in der Dokumentation zu Identity and Access Management beschrieben. Die erforderliche Rolle ist Composer-Worker (
composer.worker).
Umgebung erstellen
Erstellen Sie eine neue Umgebung mit dem Namen example-environment in der Region us-central1 mit der neuesten Version von Managed Airflow (Gen 3).
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.11.1-build.3 \
--service-account ENVIRONMENT_SERVICE_ACCOUNT
Ersetzen Sie ENVIRONMENT_SERVICE_ACCOUNT durch das Dienstkonto für Ihre Umgebung, das Sie zuvor erstellt haben.
DAG-Datei erstellen
Ein Airflow-DAG ist eine Sammlung strukturierter Aufgaben, die Sie planen und ausführen möchten. DAGs werden in Standard-Python-Dateien definiert.
In dieser Anleitung wird ein Beispiel-Airflow-DAG verwendet, der in der Datei quickstart.py definiert ist.
Der Python-Code in dieser Datei führt folgende Aktionen aus:
- Erstellt einen DAG,
composer_sample_dag. Diese DAG wird jeden Tag ausgeführt. - Die Aufgabe
print_dag_run_confwird ausgeführt. Sie gibt mithilfe des bash-Operators die Konfiguration der DAG-Ausführung aus.
Speichern Sie eine Kopie der Datei quickstart.py auf Ihrem lokalen Computer:
DAG-Datei in den Bucket Ihrer Umgebung hochladen
Jeder Managed Airflow-Umgebung ist ein Cloud Storage-Bucket zugeordnet. Airflow in Managed Airflow plant nur DAGs, die sich im Ordner /dags in diesem Bucket befinden.
Zum Planen Ihres DAG laden Sie quickstart.py von Ihrem lokalen Computer in den Ordner /dags Ihrer Umgebung hoch:
Führen Sie den folgenden Befehl in dem Ordner aus, in dem sich die quickstart.py-Datei befindet, um quickstart.py mit der Google Cloud CLI hochzuladen:
gcloud composer environments storage dags import \
--environment example-environment --location us-central1 \
--source quickstart.py
DAG ansehen
Nachdem Sie die DAG-Datei hochgeladen haben, führt Airflow die folgenden Schritte aus:
- Parst die von Ihnen hochgeladene DAG-Datei. Es kann einige Minuten dauern, bis der DAG für Airflow verfügbar ist.
- Fügt die DAG der Liste der verfügbaren DAGs hinzu.
- Führt den DAG gemäß dem Zeitplan aus, den Sie in der DAG-Datei angegeben haben.
Prüfen Sie, ob Ihr DAG fehlerfrei verarbeitet wurde und in Airflow verfügbar ist. Sehen Sie sich dazu den DAG in der DAG-UI an. Die DAG-UI ist die Managed Airflow-Oberfläche zum Ansehen von DAG-Informationen in der Google Cloud -Konsole. Managed Airflow bietet auch Zugriff auf die Airflow-UI, eine native Airflow-Weboberfläche.
Warten Sie etwa fünf Minuten, damit Airflow die DAG-Datei verarbeiten kann, die Sie zuvor hochgeladen haben, und der erste DAG-Lauf abgeschlossen werden kann (wird später erläutert).
Führen Sie den folgenden Befehl in der Google Cloud CLI aus. Mit diesem Befehl wird der
dags listAirflow-Befehlszeilenbefehl ausgeführt, mit dem DAGs in Ihrer Umgebung aufgeführt werden.gcloud composer environments run example-environment \ --location us-central1 \ dags listPrüfen Sie, ob die
composer_quickstart-DAG in der Ausgabe des Befehls aufgeführt ist.Beispielausgabe:
Executing the command: [ airflow dags list ]... Command has been started. execution_id=d49074c7-bbeb-4ee7-9b26-23124a5bafcb Use ctrl-c to interrupt the command dag_id | filepath | owner | paused ====================+=======================+==================+======= airflow_monitoring | airflow_monitoring.py | airflow | False composer_quickstart | dag-quickstart-af2.py | Composer Example | False
Details zur DAG-Ausführung ansehen
Eine einzelne Ausführung eines DAG wird als DAG-Ausführung bezeichnet. Airflow führt sofort eine DAG-Ausführung für den Beispiel-DAG aus, da das Startdatum in der DAG-Datei auf „yesterday“ (gestern) festgelegt ist. So holt Airflow den Zeitplan des angegebenen DAG auf.
Der Beispiel-DAG enthält eine Aufgabe, print_dag_run_conf, die den Befehl echo in der Konsole ausführt. Mit diesem Befehl werden Metainformationen zum DAG ausgegeben (numerische ID des DAG-Laufs).
Führen Sie den folgenden Befehl in der Google Cloud CLI aus. Mit diesem Befehl werden DAG-Ausführungen für die DAG composer_quickstart aufgelistet:
gcloud composer environments run example-environment \
--location us-central1 \
dags list-runs -- --dag-id composer_quickstart
Beispielausgabe:
dag_id | run_id | state | execution_date | start_date | end_date
====================+=============================================+=========+==================================+==================================+=================================
composer_quickstart | scheduled__2024-02-17T15:38:38.969307+00:00 | success | 2024-02-17T15:38:38.969307+00:00 | 2024-02-18T15:38:39.526707+00:00 | 2024-02-18T15:38:42.020661+00:00
Die Airflow-Befehlszeile bietet keinen Befehl zum Aufrufen von Aufgabenlogs. Sie können auch andere Methoden verwenden, um Airflow-Aufgabenlogs anzusehen: Managed Airflow DAG-UI, Airflow-UI oder Cloud Logging. In diesem Leitfaden wird beschrieben, wie Sie Cloud Logging nach Logs aus einem bestimmten DAG-Lauf abfragen.
Führen Sie den folgenden Befehl in der Google Cloud CLI aus. Mit diesem Befehl werden Logs aus Cloud Logging für einen bestimmten DAG-Lauf des composer_quickstart-DAG gelesen. Mit dem Argument --format wird die Ausgabe so formatiert, dass nur der Text des Logeintrags angezeigt wird.
gcloud logging read \
--format="value(textPayload)" \
--order=asc \
"resource.type=cloud_composer_environment \
resource.labels.location=us-central1 \
resource.labels.environment_name=example-environment \
labels.workflow=composer_quickstart \
(labels.\"execution-date\"=\"RUN_ID\")"
Ersetzen Sie:
RUN_IDmit dem Wertrun_idaus der Ausgabe destasks states-for-dag-run-Befehls, den Sie zuvor ausgeführt haben. Beispiel:2024-02-17T15:38:38.969307+00:00.
Beispielausgabe:
...
Starting attempt 1 of 2
Executing <Task(BashOperator): print_dag_run_conf> on 2024-02-17
15:38:38.969307+00:00
Started process 22544 to run task
...
Running command: ['/usr/bin/bash', '-c', 'echo 115746']
Output:
115746
...
Command exited with return code 0
Marking task as SUCCESS. dag_id=composer_quickstart,
task_id=print_dag_run_conf, execution_date=20240217T153838,
start_date=20240218T153841, end_date=20240218T153841
Task exited with return code 0
0 downstream tasks scheduled from follow-on schedule check
Bereinigen
Löschen Sie das Projekt von Google Cloud zusammen mit den Ressourcen, damit Ihrem Konto von Google Cloud die auf dieser Seite verwendeten Ressourcen nicht in Rechnung gestellt werden.
Löschen Sie die in dieser Anleitung verwendeten Ressourcen:
Managed Airflow-Umgebung löschen:
Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.
Wählen Sie
example-environmentaus und klicken Sie auf Löschen.Warten Sie, bis die Umgebung gelöscht ist.
Löschen Sie den Bucket Ihrer Umgebung. Durch das Löschen der Managed Airflow-Umgebung wird der Bucket nicht gelöscht.
Rufen Sie in der Google Cloud Console die Seite Speicher > Browser auf.
Wählen Sie den Bucket der Umgebung aus und klicken Sie auf Löschen. Dieser Bucket kann beispielsweise
us-central1-example-environ-c1616fe8-bucketheißen.
Nächste Schritte