Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
In diesem Leitfaden wird erläutert, wie Sie eine CI/CD-Pipeline zum Testen, Synchronisieren und DAGs über GitHub in Ihrer Cloud Composer-Umgebung bereitstellen zu erstellen.
Wenn Sie nur Daten aus anderen Diensten synchronisieren möchten, lesen Sie Daten aus anderen Diensten übertragen
CI/CD-Pipeline – Übersicht
![Architekturdiagramm, das die Schritte des Ablaufs zeigt. Das Vorabsenden und die PR-Überprüfung befinden sich im GitHub-Bereich, die DAG-Synchronisierung und die manuelle DAG-Überprüfung im Bereich „Google Cloud“.](https://cloud.google.com/static/composer/docs/images/dag-cicd-integration-architecture.png?authuser=0000&hl=de)
Die CI/CD-Pipeline zum Testen, Synchronisieren und Bereitstellen von DAGs verfügt über folgenden Schritten:
Sie nehmen eine Änderung an einem DAG vor und übertragen diese Änderung in einen Entwicklungszweig in Ihrem Repository gespeichert.
Sie öffnen eine Pull-Anfrage für den Hauptzweig Ihres Repositorys.
Cloud Build führt Einheitentests aus, um die Gültigkeit des DAG zu prüfen.
Ihre Pull-Anfrage wurde genehmigt und mit dem Hauptzweig Ihres zu erstellen.
Cloud Build synchronisiert Ihre Entwicklung Cloud Composer-Umgebung mit diesen neuen Änderungen.
Sie prüfen, ob sich der DAG in der Entwicklung wie erwartet verhält. zu verbessern.
Wenn Ihr DAG wie erwartet funktioniert, laden Sie ihn in die Produktion hoch. Cloud Composer-Umgebung.
Lernziele
Hinweise
In diesem Leitfaden wird davon ausgegangen, dass Sie mit zwei identischen Cloud Composer-Umgebungen: Entwicklungsumgebung und der Produktionsumgebung.
Für die Zwecke dieser Anleitung konfigurieren Sie nur eine CI/CD-Pipeline. für Ihre Entwicklungsumgebung. Achten Sie darauf, dass die Umgebung, ist keine Produktionsumgebung.
In diesem Leitfaden wird davon ausgegangen, dass Sie Ihre DAGs und zugehörigen Tests in einem GitHub zu erstellen.
Die Beispiel für eine CI/CD-Pipeline zeigt den Inhalt eines Beispiel-Repositorys. DAGs und Tests sind mit Anforderungsdateien, die im Verzeichnis
dags/
gespeichert sind, und Cloud Build-Konfigurationsdateien, die auf oberster Ebene gespeichert sind. Das Dienstprogramm für die DAG-Synchronisierung und seine Anforderungen befindet sich imutils
-Verzeichnis.
Job zur Vorabprüfung und Einheitentests erstellen
Der erste Cloud Build-Job führt eine Vorabprüfung durch, die die Einheit ausführt Tests für Ihre DAGs.
Einheitentests hinzufügen
Falls noch nicht geschehen, erstellen Sie
Einheitentests für Ihre DAGs. Speichern Sie diese Tests zusammen mit den
DAGs in Ihrem Repository, jeweils mit dem Suffix _test
. Der Test
für den DAG in example_dag.py
ist example_dag_test.py
. Dies sind die
Tests, die als Vorabprüfung in Ihrem Repository ausgeführt werden.
Cloud Build-YAML-Konfiguration für die Vorabprüfung erstellen
Erstellen Sie in Ihrem Repository eine YAML-Datei mit dem Namen test-dags.cloudbuild.yaml
, die
den Cloud Build-Job für Vorabsendeprüfungen konfiguriert. Darin befinden sich
drei Schritte:
- Installieren Sie die Abhängigkeiten, die für Ihre DAGs erforderlich sind.
- Installieren Sie die Abhängigkeiten, die für Ihre Einheitentests erforderlich sind.
- Führen Sie die DAG-Tests aus.
Cloud Build-Trigger für die Vorabprüfung erstellen
Folgen Sie der Anleitung unter Repositories aus GitHub erstellen. Anleitung zum Erstellen eines auf GitHub-Anwendung basierenden Triggers mit den folgenden Konfigurationen:
Name:
test-dags
Ereignis: Pull-Anfrage
Quelle: Repository: Wählen Sie Ihr Repository aus.
Quelle – Basiszweig:
^main$
(ändern Siemain
in den Namen Ihres Basiszweig des Repositorys (falls erforderlich)Quelle – Kommentarsteuerung: nicht erforderlich
Build-Konfiguration – Cloud Build-Konfigurationsdatei:
/test-dags.cloudbuild.yaml
(Pfad zur Build-Datei)
DAG-Synchronisierungsjob erstellen und Dienstprogrammskript für DAGs hinzufügen
Konfigurieren Sie als Nächstes einen Cloud Build-Job, mit dem ein DAGs-Dienstprogrammskript ausgeführt wird. Die synchronisiert Ihre DAGs mit Ihrem Dienstprogrammskript Cloud Composer-Umgebung, nachdem sie mit dem Hauptzweig zusammengeführt wurden in Ihrem Repository gespeichert.
DAGs-Dienstprogrammskript hinzufügen
Fügen Sie Ihrem Repository das DAG-Dienstprogrammskript hinzu. Dieses Dienstprogrammskript kopiert alle DAG-Dateien im Verzeichnis dags/
Ihres
Repository in einem temporären Verzeichnis und ignoriert alle Nicht-DAG-Python-Dateien. Die
Dann verwendet das Skript die Cloud Storage-Clientbibliothek, um alle Dateien hochzuladen.
von diesem temporären Verzeichnis in das Verzeichnis dags/
in Ihrem
Bucket der Cloud Composer-Umgebung.
YAML-Konfiguration für Cloud Build zum Synchronisieren von DAGs erstellen
Erstellen Sie in Ihrem Repository eine YAML-Datei mit dem Namen
add-dags-to-composer.cloudbuild.yaml
, der Cloud Build konfiguriert
zum Synchronisieren von DAGs. Dieser enthält zwei Schritte:
Installieren Sie die Abhängigkeiten, die vom Skript des Dienstprogramms für DAGs benötigt werden.
Führen Sie das Dienstprogrammskript aus, um die DAGs in Ihrem Repository mit Ihrem Cloud Composer-Umgebung.
Cloud Build-Trigger erstellen
Folgen Sie der Anleitung unter Repositories aus GitHub erstellen. Anleitung zum Erstellen eines auf GitHub-Anwendung basierenden Triggers mit den folgenden Konfigurationen:
Name:
add-dags-to-composer
Ereignis: Push zu einem Zweig
Quelle: Repository: Wählen Sie Ihr Repository aus.
Quelle – Basiszweig:
^main$
(ändern Siemain
in den Namen Ihres Basiszweig des Repositorys (falls erforderlich)Quelle – Filter für enthaltene Dateien (glob):
dags/**
Build-Konfiguration – Cloud Build-Konfigurationsdatei:
/add-dags-to-composer.cloudbuild.yaml
(Pfad zur Build-Datei)
Fügen Sie in der erweiterten Konfiguration zwei Substitutionsvariablen:
_DAGS_DIRECTORY
ist das Verzeichnis, in dem sich „dags“ in Ihrem Repository befindet. Wenn Sie das Beispiel-Repository aus dieser Anleitung verwenden, ist esdags/
._DAGS_BUCKET
– der Cloud Storage-Bucket, der diedags/
-Verzeichnis in Ihrer Cloud Composer-Entwicklung zu verbessern. Lassen Sie das Präfixgs://
weg. Beispiel:us-central1-example-env-1234ab56-bucket
.
CI/CD-Pipeline testen
Folgen Sie in diesem Abschnitt einem DAG-Entwicklungsablauf, der Ihre neuen Cloud Build-Trigger erstellt.
Vorabsendejob ausführen
Erstellen Sie eine Pull-Anfrage an Ihren Hauptzweig, um den Build zu testen. Finden Sie Ihren auf der Seite prüfen. Klicken Sie auf Details und wählen Sie Sehen Sie sich weitere Details zu Google Cloud Build an, um Ihre Build-Logs in der Google Cloud Console
<ph type="x-smartling-placeholder">![Screenshot einer GitHub-Prüfung namens test-dags mit einem roten Pfeil, der auf den Projektnamen in Klammern zeigt](https://cloud.google.com/static/composer/docs/images/dag-cicd-integration-github-check.png?authuser=0000&hl=de)
Wenn die Prüfung vor dem Senden fehlgeschlagen ist, lesen Sie den Abschnitt Build-Fehler beheben.
Prüfen, ob der DAG in der Entwicklungsumgebung von Cloud Composer funktioniert
Nachdem Ihre Pull-Anfrage genehmigt wurde, führen Sie sie mit Ihrem Hauptzweig zusammen. Verwenden Sie die Methode
Google Cloud Console
Build-Ergebnisse ansehen. Wenn Sie viele
Cloud Build-Trigger können Sie Ihre Builds nach dem Triggernamen filtern.
add-dags-to-composer
Wenn der Cloud Build-Synchronisierungsjob erfolgreich war, wird der synchronisierte DAG angezeigt. in der Cloud Composer-Entwicklungsumgebung. Hier können Sie überprüfen, ob der DAG wie erwartet funktioniert.
DAG der Produktionsumgebung hinzufügen
Nachdem der DAG wie erwartet funktioniert, fügen Sie ihn manuell der Produktion hinzu
zu verbessern. Gehen Sie dazu wie folgt vor:
DAG-Datei hochladen
in das Verzeichnis dags/
in Ihrer Cloud Composer-Produktionsumgebung
im Bucket der Umgebung.
Wenn der DAG-Synchronisierungsjob fehlgeschlagen ist oder der DAG in Ihrem Entwicklungsumgebung von Cloud Composer, siehe Build-Fehler beheben
Build-Fehler beheben
In diesem Abschnitt wird erläutert, wie Sie häufige Build-Fehlerszenarien beheben.
Was passiert, wenn meine Vorabprüfung fehlgeschlagen ist?
Klicken Sie in Ihrer Pull-Anfrage auf Details und wählen Sie Sehen Sie sich weitere Details zu Google Cloud Build an, um Ihre Build-Logs in der Google Cloud Console Verwenden Sie diese Protokolle, um das Problem mit Ihrem DAG Sobald Sie die Probleme behoben haben, führen Sie die Fehlerbehebung durch und senden Sie sie an Ihr Branch. Die Prüfung vor dem Senden wird noch einmal ausgeführt. Logs als Debugging-Tool einsetzen.
Was passiert, wenn mein DAG-Synchronisierungsjob fehlgeschlagen ist?
Verwenden Sie die Google Cloud Console für Folgendes:
Build-Ergebnisse ansehen. Wenn Sie viele
Cloud Build-Trigger können Sie Ihre Builds nach dem Triggernamen filtern.
add-dags-to-composer
Prüfen Sie die Logs des Build-Jobs und lösen Sie den Fehler
Fehler. Wenn Sie beim Beheben der Fehler weitere Hilfe benötigen, nutzen Sie
Supportkanäle.
Was passiert, wenn mein DAG in meiner Cloud Composer-Umgebung nicht ordnungsgemäß funktioniert?
Wenn der DAG in der Entwicklung nicht wie erwartet funktioniert Cloud Composer-Umgebung, stufen Sie den DAG nicht manuell zu Ihrem in der Cloud Composer-Produktionsumgebung. Führen Sie stattdessen einen der folgenden Schritte aus:
- Pull-Anfrage wiederherstellen mit den Änderungen, die den DAG unterbrochen haben, um den Zustand wiederherzustellen unmittelbar vor Ihren Änderungen (dadurch werden auch alle anderen Dateien in dieser Pull-Anfrage wiederhergestellt).
- Erstellen Sie eine neue Pull-Anfrage, um Änderungen am fehlerhaften DAG manuell zurückzusetzen.
- Erstellen Sie eine neue Pull-Anfrage, um die Fehler im DAG zu beheben.
Wenn Sie einen dieser Schritte ausführen, wird eine neue Vorabprüfung ausgelöst. Nach der Zusammenführung den DAG-Synchronisierungsjob.