Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
In diesem Leitfaden wird beschrieben, wie Sie eine CI/CD-Pipeline erstellen, um DAGs aus Ihrem GitHub-Repository in Ihrer Cloud Composer-Umgebung zu testen, zu synchronisieren und bereitzustellen.
Wenn Sie nur Daten aus anderen Diensten synchronisieren möchten, lesen Sie den Hilfeartikel Daten aus anderen Diensten übertragen.
CI/CD-Pipeline – Übersicht

Die CI/CD-Pipeline zum Testen, Synchronisieren und Bereitstellen von DAGs umfasst die folgenden Schritte:
Sie nehmen eine Änderung an einem DAG vor und übertragen diese Änderung per Push in einen Entwicklungszweig in Ihrem Repository.
Sie öffnen eine Pull-Anfrage für den Hauptzweig Ihres Repositorys.
Cloud Build führt Einheitentests aus, um zu prüfen, ob Ihr DAG gültig ist.
Ihre Pull-Anfrage wurde genehmigt und in den Hauptzweig Ihres Repositorys zusammengeführt.
Cloud Build synchronisiert Ihre Cloud Composer-Entwicklungsumgebung mit diesen neuen Änderungen.
Sie prüfen, ob sich die DAG in Ihrer Entwicklungsumgebung wie erwartet verhält.
Wenn Ihr DAG wie erwartet funktioniert, laden Sie ihn in Ihre Cloud Composer-Produktionsumgebung hoch.
Ziele
Hinweise
In dieser Anleitung wird davon ausgegangen, dass Sie mit zwei identischen Cloud Composer-Umgebungen arbeiten: einer Entwicklungsumgebung und einer Produktionsumgebung.
In diesem Leitfaden konfigurieren Sie eine CI/CD-Pipeline nur für Ihre Entwicklungsumgebung. Achten Sie darauf, dass die verwendete Umgebung keine Produktionsumgebung ist.
In dieser Anleitung wird davon ausgegangen, dass Sie Ihre DAGs und die zugehörigen Tests in einem GitHub-Repository gespeichert haben.
Die Beispiel-CI/CD-Pipeline veranschaulicht den Inhalt eines Beispiel-Repositorys. DAGs und Tests werden im Verzeichnis
dags/
gespeichert. An der obersten Ebene befinden sich die Anforderungsdateien, die Datei mit den Einschränkungen und die Cloud Build-Konfigurationsdateien. Das DAG-Synchronisierungstool und seine Anforderungen befinden sich im Verzeichnisutils
.Diese Struktur kann für Airflow 1-, Airflow 2-, Cloud Composer 1- und Cloud Composer 2-Umgebungen verwendet werden.
Vorabtestjob und Unit-Tests erstellen
Im ersten Cloud Build-Job wird eine Vorabprüfung ausgeführt, bei der Komponententests für Ihre DAGs ausgeführt werden.
Unittests hinzufügen
Wenn Sie es noch nicht getan haben, erstellen Sie Einheitentests für Ihre DAGs. Speichern Sie diese Tests zusammen mit den DAGs in Ihrem Repository, jeweils mit dem Suffix _test
. Die Testdatei für den DAG in example_dag.py
ist beispielsweise example_dag_test.py
. Dies sind die Tests, die als Presubmit-Prüfung in Ihrem Repository ausgeführt werden.
Cloud Build-YAML-Konfiguration für den Vorabtest erstellen
Erstellen Sie in Ihrem Repository eine YAML-Datei mit dem Namen test-dags.cloudbuild.yaml
, die Ihren Cloud Build-Job für Presubmit-Prüfungen konfiguriert. Dazu sind drei Schritte erforderlich:
- Installieren Sie die Abhängigkeiten, die für Ihre DAGs erforderlich sind.
- Installieren Sie die Abhängigkeiten, die für Ihre Unittests erforderlich sind.
- Führen Sie die DAG-Tests aus.
Cloud Build-Trigger für den Vorabtest erstellen
Folgen Sie der Anleitung unter Repositories aus GitHub erstellen, um einen GitHub-App-basierten Trigger mit den folgenden Konfigurationen zu erstellen:
Name:
test-dags
Ereignis: Pull-Anfrage
Quelle – Repository: Wählen Sie Ihr Repository aus.
Quelle – Basis-Branch:
^main$
(ändern Siemain
bei Bedarf in den Namen des Basis-Branchs Ihres Repositorys)Quelle – Kommentarsteuerung: nicht erforderlich
Build-Konfiguration – Cloud Build-Konfigurationsdatei:
/test-dags.cloudbuild.yaml
(der Pfad zu Ihrer Build-Datei)
DAG-Synchronisierungsjob erstellen und DAGs-Utility-Script hinzufügen
Konfigurieren Sie als Nächstes einen Cloud Build-Job, der ein DAGs-Hilfsskript ausführt. Das Utility-Script in diesem Job synchronisiert Ihre DAGs mit Ihrer Cloud Composer-Umgebung, nachdem sie in Ihrem Repository in den Hauptzweig zusammengeführt wurden.
DAGs-Hilfsskript hinzufügen
Fügen Sie Ihrem Repository das DAG-Utility-Skript hinzu. Mit diesem Hilfsskript werden alle DAG-Dateien im Verzeichnis dags/
Ihres Repositorys in ein temporäres Verzeichnis kopiert. Dabei werden alle Python-Dateien, die keine DAG-Dateien sind, ignoriert. Das Skript verwendet dann die Cloud Storage-Clientbibliothek, um alle Dateien aus diesem temporären Verzeichnis in das Verzeichnis dags/
im Bucket Ihrer Cloud Composer-Umgebung hochzuladen.
Cloud Build-YAML-Konfiguration zum Synchronisieren von DAGs erstellen
Erstellen Sie in Ihrem Repository eine YAML-Datei mit dem Namen add-dags-to-composer.cloudbuild.yaml
, in der Sie Ihren Cloud Build-Job zum Synchronisieren von DAGs konfigurieren. Er besteht aus zwei Schritten:
Installieren Sie die Abhängigkeiten, die für das DAGs-Hilfsprogramm-Skript erforderlich sind.
Führen Sie das Dienstprogramm-Skript aus, um die DAGs in Ihrem Repository mit Ihrer Cloud Composer-Umgebung zu synchronisieren.
Cloud Build-Trigger erstellen
Folgen Sie der Anleitung unter Repositories aus GitHub erstellen, um einen GitHub-App-basierten Trigger mit den folgenden Konfigurationen zu erstellen:
Name:
add-dags-to-composer
Ereignis: Push zu Zweig
Quelle – Repository: Wählen Sie Ihr Repository aus.
Quelle – Basis-Branch:
^main$
(ändern Siemain
bei Bedarf in den Namen des Basis-Branchs Ihres Repositorys)Quelle – Filter für enthaltene Dateien (glob):
dags/**
Build-Konfiguration – Cloud Build-Konfigurationsdatei:
/add-dags-to-composer.cloudbuild.yaml
(der Pfad zu Ihrer Build-Datei)
Fügen Sie in der erweiterten Konfiguration zwei Substitutionsvariablen hinzu:
_DAGS_DIRECTORY
: Das Verzeichnis, in dem sich DAGs in Ihrem Repository befinden. Wenn Sie das Beispiel-Repository aus dieser Anleitung verwenden, ist esdags/
._DAGS_BUCKET
: Der Cloud Storage-Bucket, der das Verzeichnisdags/
in Ihrer Cloud Composer-Entwicklungsumgebung enthält. Lassen Sie das Präfixgs://
weg. Beispiel:us-central1-example-env-1234ab56-bucket
.
CI/CD-Pipeline testen
In diesem Abschnitt folgen Sie einem DAG-Entwicklungsablauf, bei dem die neu erstellten Cloud Build-Trigger verwendet werden.
Presubmit-Job ausführen
Erstellen Sie eine Pull-Anfrage für Ihren Hauptzweig, um den Build zu testen. Suchen Sie auf der Seite nach dem Presubmit-Check. Klicken Sie auf Details und wählen Sie Weitere Details in Google Cloud Build anzeigen aus, um Ihre Build-Logs in derGoogle Cloud console anzusehen.

Wenn Ihre Presubmit-Prüfung fehlgeschlagen ist, lesen Sie den Abschnitt Build-Fehler beheben.
Prüfen, ob Ihr DAG in Ihrer Cloud Composer-Entwicklungsumgebung funktioniert
Nachdem Ihre Pull-Anfrage genehmigt wurde, führen Sie sie mit Ihrem Hauptzweig zusammen. Verwenden Sie dieGoogle Cloud Console, um Ihre Build-Ergebnisse anzusehen. Wenn Sie viele Cloud Build-Trigger haben, können Sie Ihre Builds nach dem Triggernamen add-dags-to-composer
filtern.
Nachdem der Cloud Build-Synchronisierungsjob erfolgreich abgeschlossen wurde, wird der synchronisierte DAG in Ihrer Cloud Composer-Entwicklungsumgebung angezeigt. Dort können Sie prüfen, ob der DAG wie erwartet funktioniert.
DAG in die Produktionsumgebung einfügen
Wenn der DAG wie erwartet funktioniert, fügen Sie ihn manuell Ihrer Produktionsumgebung hinzu. Laden Sie dazu die DAG-Datei in das Verzeichnis dags/
im Bucket Ihrer Cloud Composer-Produktionsumgebung hoch.
Wenn Ihr DAG-Synchronisierungsjob fehlgeschlagen ist oder sich Ihr DAG in Ihrer Cloud Composer-Entwicklungsumgebung nicht wie erwartet verhält, lesen Sie den Abschnitt Build-Fehler beheben.
Build-Fehler beheben
In diesem Abschnitt wird erläutert, wie Sie häufige Szenarien für Build-Fehler beheben.
Was passiert, wenn die Vorabprüfung fehlschlägt?
Klicken Sie in Ihrem Pull-Request auf Details und wählen Sie Weitere Details in Google Cloud Build anzeigen aus, um Ihre Build-Logs in derGoogle Cloud -Konsole aufzurufen. Anhand dieser Logs können Sie das Problem mit Ihrem DAG beheben. Sobald Sie die Probleme behoben haben, übertragen Sie die Korrektur und pushen Sie sie in Ihren Branch. Die Vorabprüfung wird noch einmal ausgeführt und Sie können die Logs als Debugging-Tool verwenden, um weitere Änderungen vorzunehmen.
Was passiert, wenn mein DAG-Synchronisierungsjob fehlschlägt?
In der Google Cloud Console können Sie Ihre Build-Ergebnisse ansehen. Wenn Sie viele Cloud Build-Trigger haben, können Sie Ihre Builds nach dem Triggernamen add-dags-to-composer
filtern. Sehen Sie sich die Logs des Build-Jobs an und beheben Sie die Fehler. Wenn Sie weitere Hilfe bei der Behebung der Fehler benötigen, nutzen Sie die Supportkanäle.
Was kann ich tun, wenn meine DAG in meiner Cloud Composer-Umgebung nicht richtig funktioniert?
Wenn Ihr DAG in Ihrer Cloud Composer-Entwicklungsumgebung nicht wie erwartet funktioniert, übertragen Sie ihn nicht manuell in Ihre Cloud Composer-Produktionsumgebung. Führen Sie stattdessen einen der folgenden Schritte aus:
- Machen Sie den Pull-Request rückgängig, der die Änderungen enthält, die Ihre DAG beschädigt haben, um sie in den Zustand unmittelbar vor Ihren Änderungen zurückzusetzen. Dadurch werden auch alle anderen Dateien in diesem Pull-Request zurückgesetzt.
- Erstellen Sie eine neue Pull-Anfrage, um die Änderungen am fehlerhaften DAG manuell rückgängig zu machen.
- Erstellen Sie einen neuen Pull-Request, um die Fehler in Ihrem DAG zu beheben.
Wenn Sie einen dieser Schritte ausführen, wird ein neuer Presubmit-Check und beim Zusammenführen der DAG-Synchronisierungsjob ausgelöst.