Apache Airflow-Weboberfläche aufrufen

Cloud Composer 1 Cloud Composer 2

Apache Airflow enthält eine Weboberfläche (UI), über die Sie Workflows (DAGs) und die Airflow-Umgebung verwalten sowie administrative Aktionen ausführen können. Beispielsweise haben Sie die Möglichkeit, mit der Weboberfläche den Fortschritt eines DAG zu prüfen, eine neue Datenverbindung einzurichten oder Logs aus der Ausführung vorheriger DAGs zu 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 Cloud Composer-Umgebungsarchitektur.

Hinweise

  • 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 angepasst werden.

  • Cloud Composer 2 unterstützt das Feature Airflow-UI-Zugriffssteuerung (Role-Based Access Control, rollenbasierte Zugriffssteuerung von Airflow) für die Airflow-Weboberfläche.

  • Wenn in Google Workspace die Option API-Steuerung > Nicht konfigurierte Drittanbieter-Apps > Nutzer dürfen nicht auf Drittanbieter-Apps zugreifen aktiviert ist und Apache Airflow in der Cloud Composer-Anwendung nicht explizit zugelassen ist, können Nutzer nur dann auf die Airflow-UI zugreifen, wenn sie die Anwendung explizit zulassen. Führen Sie die Schritte unter Zugriff auf die Airflow-UI in Google Workspace zulassen aus, um den Zugriff zu erlauben.

Auf die Airflow-Weboberfläche zugreifen

Der Airflow-Webserver wird als Arbeitslast im Cluster Ihrer Umgebung ausgeführt. Der Webserver wird in der Domain composer.googleusercontent.com bereitgestellt und bietet Zugriff auf die Airflow-Weboberfläche.

Cloud Composer 2 bietet Zugriff auf die Schnittstelle basierend auf Nutzeridentitäten und IAM-Richtlinienbindungen, die für Nutzer definiert sind. Im Vergleich zu Cloud Composer 1 verwendet Cloud Composer 2 einen anderen Mechanismus, der nicht auf Identity-Aware Proxy angewiesen ist.

Über die Google Cloud Console 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.

    Zur Seite Umgebungen“

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

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-IP-Bereichen zulassen.
  • Es ist nicht möglich, die zulässigen IP-Bereiche mit privaten IP-Adressen zu konfigurieren.

URL der Weboberfläche mit dem gcloud-Befehlszeilentool abrufen

Sie können über einen beliebigen Webbrowser auf die Airflow-Weboberfläche zugreifen. Zum Abrufen der URL für die Weboberfläche geben Sie diesen gcloud-Befehl ein:

gcloud composer environments describe ENVIRONMENT_NAME \
  --location LOCATION

Ersetzen Sie Folgendes:

  • ENVIRONMENT_NAME: der Name Ihrer Umgebung
  • LOCATION: die Region, in der sich die Umgebung befindet.

Der Befehl gcloud zeigt die Attribute einer Cloud Composer-Umgebung, einschließlich der URLs für die Weboberfläche. Die URLs werden als airflowUri und airflowByoidUri aufgeführt:

  • Die URL-Adresse airflowUri wird von Google-Konten verwendet.
  • Die URL-Adresse airflowByoidUri wird von externen Identitäten verwendet, wenn Sie die Mitarbeiteridentitätsföderation in Ihrem Projekt konfigurieren.
config:
  airflowUri: https://example-dot-us-central1.composer.googleusercontent.com
  airflowByoidUri: https://example-dot-us-central1.composer.byoid.googleusercontent.com

Webserver neu starten

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

Webserver-Netzwerkzugriff konfigurieren

Die Zugriffsparameter des Airflow-Webservers hängen nicht vom Typ Ihrer Umgebung ab. Stattdessen konfigurieren Sie den Webserverzugriff separat. Beispiel: In einer privaten IP-Umgebung kann die Airflow-UI weiterhin über das Internet zugänglich sein.

Es ist nicht möglich, die zulässigen IP-Bereiche mit privaten IP-Adressen zu konfigurieren.

Console

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

    Zur Seite Umgebungen“

  2. Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Umgebung. Die Seite Umgebungsdetails wird geöffnet.

  3. Rufen Sie den Tab Umgebungskonfiguration auf.

  4. Klicken Sie im Abschnitt Netzwerkkonfiguration unter Zugriffssteuerung für Webserver auf Bearbeiten.

  5. Gehen Sie im Dialogfeld Webserver-Netzwerkzugriffssteuerung so vor:

    • Wenn Sie Zugriff auf den Airflow-Webserver über alle IP-Adressen gewähren 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 aus. Geben Sie im Feld IP-Bereich einen IP-Bereich in der CIDR-Notation an. Geben Sie im Feld Beschreibung eine optionale Beschreibung für diesen Bereich an. Wenn Sie mehr als einen Bereich angeben möchten, klicken Sie auf IP-Bereich hinzufügen.

    • Wenn Sie den Zugriff für alle IP-Adressen verbieten möchten, wählen Sie Zugriff nur von bestimmten IP-Adressen zulassen aus und klicken Sie neben dem Eintrag für den leeren Bereich auf Element löschen.

gcloud

Wenn Sie eine Umgebung aktualisieren, werden die Webserver-Zugriffsparameter durch die folgenden Argumente gesteuert:

  • --web-server-allow-all bietet Zugriff auf Airflow von allen IP-Adressen. 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 update ENVIRONMENT_NAME \
    --location LOCATION \
    --web-server-allow-ip ip_range=WS_IP_RANGE,description=WS_RANGE_DESCRIPTION

Ersetzen Sie Folgendes:

  • ENVIRONMENT_NAME: der Name Ihrer Umgebung
  • LOCATION: die Region, in der sich die Umgebung befindet.
  • WS_IP_RANGE: der IP-Bereich in der CIDR-Notation, der auf die Airflow-UI zugreifen kann.
  • WS_RANGE_DESCRIPTION: die Beschreibung des IP-Bereichs

Beispiel:

gcloud composer environments update example-environment \
    --location us-central1 \
    --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

  1. Erstellen Sie eine [environments.patch][api-patch]-API-Anfrage.

  2. In dieser Anfrage:

    1. Geben Sie im Parameter updateMask die Maske config.webServerNetworkAccessControl an.

    2. Geben Sie im Anfragetext an, wie Airflow-Tasklogs gespeichert werden sollen:

      • Geben Sie ein leeres config-Element an, um Zugriff auf Airflow von allen IP-Adressen zu gewähren (das Element webServerNetworkAccessControl darf nicht vorhanden sein).

      • Wenn Sie den Zugriff auf bestimmte IP-Bereiche beschränken möchten, geben Sie einen oder mehrere Bereiche in allowedIpRanges an.

      • Wenn Sie den Zugriff für alle IP-Adressen verbieten möchten, geben Sie ein leeres webServerNetworkAccessControl-Element an. Das webServerNetworkAccessControl-Element muss vorhanden sein, darf aber kein allowedIpRanges-Element enthalten.

{
  "config": {
    "webServerNetworkAccessControl": {
      "allowedIpRanges": [
        {
          "value": "WS_IP_RANGE",
          "description": "WS_RANGE_DESCRIPTION"
        }
      ]
    }
  }
}

Ersetzen Sie Folgendes:

  • WS_IP_RANGE: der IP-Bereich in der CIDR-Notation, der auf die Airflow-UI zugreifen kann.
  • WS_RANGE_DESCRIPTION: die Beschreibung des IP-Bereichs

Beispiel:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.webServerNetworkAccessControl

{
  "config": {
    "webServerNetworkAccessControl": {
      "allowedIpRanges": [
        {
          "value": "192.0.2.0/24",
          "description": "office net 1"
        },
        {
          "value": "192.0.4.0/24",
          "description": "office net 3"
        }
      ]
    }
  }
}

Terraform

Geben Sie im Block allowed_ip_range im web_server_network_access_control IP-Bereiche an, 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"
      }

    }
}

Nächste Schritte