Auf die Airflow-Weboberfläche zugreifen

Cloud Composer 1 | Cloud Composer 2

Apache Airflow bietet eine Weboberfläche, mit der Sie Workflows (DAGs), die Airflow-Umgebung und administrative Aktionen verwalten können. Sie können beispielsweise mit der Weboberfläche den Fortschritt eines DAG prüfen, eine neue Datenverbindung einrichten oder Logs aus vorherigen DAG-Ausführungen prüfen.

Airflow-Webserver

Jede Cloud Composer-Umgebung verfügt über einen Webserver, auf dem die Airflow-Weboberfläche ausgeführt wird. Der Webserver ist Teil der Architektur der Cloud Composer-Umgebung.

Der Webserver parst die DAG-Definitionsdateien im Ordner dags/. Er muss die Möglichkeit haben, auf die Daten und Ressourcen eines DAG zuzugreifen, um den DAG laden und HTTP-Anfragen senden zu können.

Der Webserver aktualisiert die DAGs alle 60 Sekunden. Dies ist der standardmäßige worker_refresh_interval in Cloud Composer. Ein Webserverfehler kann auftreten, wenn der Webserver nicht alle DAGs innerhalb des Aktualisierungsintervalls parsen kann.

Ein Überschreiten von 60 Sekunden zum Laden von DAGs kann auftreten, wenn eine große Anzahl von DAG-Dateien oder eine nicht unerhebliche Arbeitslast zum Laden der DAG-Dateien vorhanden ist. Damit der Webserver unabhängig von der DAG-Ladezeit zugänglich ist, können Sie das asynchrone Laden von DAGs so konfigurieren, dass DAGs in einem vorkonfigurierten Intervall im Hintergrund geparst und geladen werden (verfügbar in composer-1.7.1-airflow-1.10.2 und höheren Versionen. Diese Konfiguration kann auch die DAG-Aktualisierungszeit reduzieren.

Mit Ausnahme einer Überschreitung des Worker-Aktualisierungsintervalls kann der Webserver die meisten DAG-Ladefehler problemlos bewältigen. Bei DAGs, die einen Absturz oder ein Schließen des Webservers verursachen, werden eventuell Fehler im Browser zurückgegeben. Weitere Informationen finden Sie unter Fehlerbehebung bei DAGs.

Wenn aufgrund des DAG-Parsings weiterhin Webserverprobleme auftreten, empfehlen wir die Verwendung des asynchronen DAG-Ladeverfahrens.

Webserver neu starten (Vorschau)

Bei dem Debugging oder der Fehlerbehebung in Cloud Composer-Umgebungen können einige Probleme möglicherweise durch einen Neustart des Airflow-Webservers behoben werden. Sie können den Webserver mit der restartWebWeb API oder dem gcloud-Befehl restart-web-server neu starten:

gcloud beta composer environments restart-web-server ENVIRONMENT_NAME
  --location=LOCATION

Hinweis

  • Sie benötigen eine Rolle, die Cloud Composer-Umgebungen aufrufen kann. Weitere Informationen finden Sie unter Zugriffssteuerung.

  • Während der Erstellung der Umgebung konfiguriert Cloud Composer die URL für den Webserver, auf dem die Airflow-Weboberfläche ausgeführt wird. Die URL kann nicht geändert werden.

  • einRollenbasierte Zugriffssteuerung RBAC-Feature für die Airflow-Weboberfläche wird für Cloud Composer-Umgebungen mit Composer-Version 1.13.4 oder höher, Airflow-Version 1.10.10 oder höher und Python 3 unterstützt.

Weboberfläche aufrufen

Der Airflow-Webserverdienst wird in der Domain appspot.com bereitgestellt und bietet Zugriff auf die Airflow-Weboberfläche. Identity-Aware Proxy schützt die Oberfläche und steuert den Zugriff anhand von Nutzeridentitäten.

Nach dem Erstellen einer neuen Cloud Composer-Umgebung dauert es bis zu 25 Minuten, bis die Weboberfläche das Hosting vollendet hat und der Zugriff darauf möglich ist.

Von der Google Cloud Console aus auf die Weboberfläche zugreifen

So greifen Sie über die Google Cloud Console auf die Airflow-Weboberfläche zu:

  1. Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.

    Zu den Umgebungen

  2. Klicken Sie in der Spalte Airflow-Webserver auf den Link Airflow für Ihre Umgebung.

  3. Melden Sie sich mit einem Google-Konto an, das über die entsprechenden Berechtigungen verfügt.

Zugriff auf den Airflow-Webserver beschränken

Mit Composer-Umgebungen können Sie den Zugriff auf den Airflow-Webserver einschränken.

Sie können den gesamten Zugriff blockieren oder den Zugriff von bestimmten externen IPv4- oder IPv6-Bereichen zulassen.

Derzeit können Sie die zulässigen IP-Bereiche nicht mit privaten IP-Adressen konfigurieren.

URL der Weboberfläche mit dem gcloud-Befehlszeilentool abrufen

Sie können über einen beliebigen Webbrowser auf die Airflow-Weboberfläche zugreifen. Geben Sie den folgenden gcloud-Befehl ein, um die URL für die Weboberfläche abzurufen:

gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION

wobei

  • ENVIRONMENT_NAME ist der Name der Umgebung.
  • LOCATION ist die Compute Engine-Region, in der sich die Umgebung befindet.

Der gcloud-Befehl zeigt die Attribute einer Cloud Composer-Umgebung an, einschließlich der URL für die Weboberfläche. Die URL ist als airflowUri aufgeführt.

airflowUri: https://uexamplebcd3fff-tp.appspot.com/
  dagGcsPrefix: gs://us-central1-example-environment-00a47695-bucket/dags
  gkeCluster: projects/example-project/zones/us-central1-a/clusters/us-central1-example-environment-00a47695-gke
  nodeConfig:
    diskSizeGb: 100
    location: projects/example-project/zones/us-central1-a
    machineType: projects/example-project/zones/us-central1-a/machineTypes/n1-standard-1
    network: projects/example-project/global/networks/default
    oauthScopes:
    - https://www.googleapis.com/auth/cloud-platform
    serviceAccount: N13597NNN465-compute@developer.gserviceaccount.com
  nodeCount: 3
  softwareConfig:
    imageVersion: composer-0.5.1-airflow-1.9.0
createTime: '2018-05-19T02:13:36.749Z'
name: projects/example-project/locations/us-central1/environments/example-environment
state: RUNNING
updateTime: '2018-05-19T02:30:21.387Z'
uuid: 66bd6a28-5b48-4da3-a0aa-898199b569da

Asynchrones Laden von DAGs konfigurieren

Wenn das asynchrone Laden des DAG aktiviert ist, erstellt der Airflow-Webserver einen neuen Prozess. Dieser Prozess lädt DAGs im Hintergrund, sendet neu geladene DAGs in Intervallen, die durch die Option dagbag_sync_interval definiert sind, und wechselt dann in den Ruhemodus.

Der Prozess wird in regelmäßigen Abständen aktiviert, um DAGs neu zu laden. Das Intervall wird durch die Option collect_dags_interval definiert.

So aktivieren Sie das asynchrone Laden von DAGs:

  1. Deaktivieren Sie die DAG-Serialisierung. Asynchrones Laden von DAGs kann nicht mit der DAG-Serialisierung verwendet werden. Die Verwendung der Airflow-Konfigurationsoptionen async_dagbag_loader und store_serialized_dags erzeugt HTTP-503-Fehler und löst Ihre Umgebung auf.

  2. Überschreiben Sie die folgenden Airflow-Konfigurationsoptionen:

    Bereich Schlüssel Wert Hinweise
    webserver async_dagbag_loader True Der Standardwert ist False.
    webserver collect_dags_interval 30 Der Standardwert ist 30. Verwenden Sie einen kleineren Wert für schnellere Aktualisierungen.
    webserver dagbag_sync_interval 10 Der Standardwert ist 10.
    webserver worker_refresh_interval 3600 Der Standardwert ist 60. Beim asynchronen Laden von DAGs können Sie ein längeres Aktualisierungsintervall verwenden.