Auf die Airflow-Weboberfläche zugreifen

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Apache Airflow enthält eine Web-Benutzeroberfläche namens Airflow-UI, mit der Sie Airflow-DAGs verwalten, DAG-Laufzeitlogs ansehen, Airflow überwachen und administrative Aktionen ausführen können.

Airflow-Webserver

Jede Cloud Composer-Umgebung hat einen Webserver, auf dem die Airflow-UI 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-UI ausgeführt wird. Die URL kann nicht angepasst werden.

  • Cloud Composer 2 unterstützt das Feature Airflow UI Access Control (Airflow Role-Based Access Control) für die Airflow-UI.

  • Wenn in Google Workspace die Option API-Steuerelemente > Nicht konfigurierte Drittanbieter-Apps > Nutzer dürfen nicht auf Drittanbieter-Apps zugreifen aktiviert ist und die Apache Airflow in Cloud Composer-App nicht explizit zugelassen ist, können Nutzer nicht auf die Airflow-Benutzeroberfläche zugreifen, es sei denn, sie lassen die Anwendung explizit zu. Führen Sie die Schritte unter Zugriff auf die Airflow-Benutzeroberfläche in Google Workspace zulassen aus, um den Zugriff zu ermöglichen.

  • Wenn kontextbezogene Zugriffsbinding von Chrome Enterprise Premium mit Zugriffsebenen verwendet werden, die auf Geräteattributen basieren, und die Apache Airflow in Cloud Composer-App nicht ausgenommen ist, kann aufgrund einer Anmeldeschleife nicht auf die Airflow-Benutzeroberfläche zugegriffen werden. Um den Zugriff zu erlauben, führen Sie die Schritte unter Zugriff auf die Airflow-UI in Bindungen für den kontextsensitiven Zugriff zulassen aus.

  • Wenn Regeln für eingehenden Traffic in einem VPC Service Controls-Perimeter konfiguriert sind, der das Projekt schützt, und die Regel für eingehenden Traffic, die den Zugriff auf den Cloud Composer-Dienst zulässt, den Identitätstyp ANY_SERVICE_ACCOUNT oder ANY_USER_ACCOUNT verwendet, können Nutzer nicht auf die Airflow-UI zugreifen und geraten in eine Anmeldeschleife. Weitere Informationen zu diesem Szenario finden Sie unter Zugriff auf die Airflow-UI in VPC Service Controls-Eingangsregeln zulassen.

  • Cloud Composer unterstützt nicht die Verwendung von Drittanbieteridentitäten in Regeln für eingehenden und ausgehenden Traffic, um Apache Airflow-UI-Vorgänge zuzulassen. Sie können jedoch den Identitätstyp ANY_IDENTITY in Ingress- und Egress-Regeln verwenden, um den Zugriff auf alle Identitäten, einschließlich Drittanbieteridentitäten, zu ermöglichen. Weitere Informationen zum Identitätstyp ANY_IDENTITY finden Sie unter Regeln für eingehenden und ausgehenden Traffic.

Auf die Airflow-UI zugreifen

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

Cloud Composer 2 bietet Zugriff auf die Benutzeroberfläche basierend auf Nutzeridentitäten und für Nutzer definierten IAM-Richtlinienbindungen. Im Vergleich zu Cloud Composer 1 verwendet Cloud Composer 2 einen anderen Mechanismus, der nicht auf Identity-Aware Proxy basiert.

Über die Google Cloud Konsole auf die Airflow-Benutzeroberfläche zugreifen

So greifen Sie über die Google Cloud -Konsole auf die Airflow-Benutzeroberflä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.

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

Airflow-UI-URL mit der Google Cloud CLI abrufen

Sie können über einen beliebigen Webbrowser auf die Airflow-UI zugreifen. Führen Sie den folgenden Befehl in der Google Cloud CLI aus, um die URL für die Airflow-UI abzurufen:

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 Google Cloud CLI-Befehl zeigt die Attribute einer Cloud Composer-Umgebung an, einschließlich der URLs für die Airflow-UI. Die URLs sind als airflowUri und airflowByoidUri aufgeführt:

  • Die airflowUri-URL-Adresse wird von Google-Konten verwendet.
  • Die airflowByoidUri-URL-Adresse 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 restartWebServer API oder dem Befehl restart-web-server in der Google Cloud CLI neu starten:

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

Ersetzen Sie Folgendes:

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

Netzwerkzugriff für Webserver konfigurieren

Die Zugriffsparameter für den Airflow-Webserver hängen nicht von der Netzwerkkonfiguration Ihrer Umgebung ab. Stattdessen können Sie den Webserverzugriff separat konfigurieren. Beispiel: In einer privaten IP-Umgebung kann die Airflow-UI weiterhin über das Internet zugänglich sein.

Die zulässigen IP-Bereiche können nicht als private IP-Adressen konfiguriert werden.

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. Suchen Sie im Bereich Netzwerkkonfiguration nach dem Element Webserver-Zugriffssteuerung und klicken Sie auf Bearbeiten.

  5. Im Dialogfeld Webserver-Netzwerkzugriffssteuerung:

    • Wählen Sie Zugriff über alle IP-Adressen zulassen aus, um den Zugriff auf den Airflow-Webserver über alle IP-Adressen zu ermöglichen.

    • 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 mehrere Bereiche 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 leeren Bereichseintrag auf Element löschen.

gcloud

Beim Aktualisieren einer Umgebung steuern die folgenden Argumente die Zugriffsparameter des Webservers:

  • --web-server-allow-all bietet Zugriff auf Airflow von allen IP-Adressen aus. Dies ist die Standardoption.

  • --update-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 verbietet den Zugriff für alle IP-Adressen.

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --update-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 CIDR-Notation), der auf die Airflow-UI zugreifen darf.
  • WS_RANGE_DESCRIPTION: die Beschreibung des IP-Bereichs.

Beispiel:

gcloud composer environments update example-environment \
    --location us-central1 \
    --update-web-server-allow-ip ip_range=192.0.2.0/24,description="example range" \
    --update-web-server-allow-ip ip_range=192.0.4.0/24,description="example range 2"

API

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

  2. In dieser Anfrage:

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

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

      • Wenn Sie Zugriff auf Airflow über alle IP-Adressen gewähren möchten, geben Sie ein leeres config-Element an (das webServerNetworkAccessControl-Element 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 CIDR-Notation), der auf die Airflow-UI zugreifen darf.
  • 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": "example range"
        },
        {
          "value": "192.0.4.0/24",
          "description": "example range 2"
        }
      ]
    }
  }
}

Terraform

Geben Sie im Block allowed_ip_range im Block 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 Folgendes:

  • WS_IP_RANGE: der IP-Bereich (in CIDR-Notation), der auf die Airflow-UI zugreifen darf.
  • WS_RANGE_DESCRIPTION: 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 = "example range"
      },
      allowed_ip_range {
        value = "192.0.4.0/24"
        description = "example range 2"
      }

    }
}

Nächste Schritte