Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Apache Airflow enthält eine Weboberfläche namens Airflow UI, mit der Sie Airflow-DAGs verwalten, DAG-Ausführungsprotokolle ansehen, Airflow überwachen und administrative Aktionen ausführen können.
Airflow-Webserver
Jede Cloud Composer-Umgebung verfügt über einen Webserver, auf dem die Airflow-Benutzeroberfläche ausgeführt wird. Der Webserver ist Teil der Cloud Composer-Umgebungsarchitektur.
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-Benutzeroberfläche ausgeführt wird. Die URL kann nicht angepasst werden.
Cloud Composer 2 unterstützt die Funktion Airflow UI Access Control (Airflow Role-Based Access Control) für die Airflow-Benutzeroberfläche.
Wenn die Option API-Steuerung > Nicht konfigurierte Drittanbieter-Apps > Nutzer dürfen nicht auf Drittanbieter-Apps zugreifen in Google Workspace aktiviert ist und die Apache Airflow-App in Cloud Composer nicht explizit zugelassen ist, können Nutzer nicht auf die Airflow-Benutzeroberfläche zugreifen, es sei denn, sie erlauben die Anwendung explizit. Führen Sie die Schritte unter Zugriff auf die Airflow-Benutzeroberfläche in Google Workspace zulassen aus, um den Zugriff zu erlauben.
Wenn bindungen für den kontextbezogenen Zugriff von Chrome Enterprise Premium mit Zugriffsebenen verwendet werden, die auf Geräteattributen basieren, und die Apache Airflow-App in Cloud Composer nicht ausgenommen ist, ist aufgrund einer Anmeldeschleife kein Zugriff auf die Airflow-Benutzeroberfläche möglich. Führen Sie die Schritte unter Zugriff auf die Airflow-Benutzeroberfläche in Bindungen für den kontextsensitiven Zugriff zulassen aus, um den Zugriff zuzulassen.
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 ermöglicht, den Identitätstyp
ANY_SERVICE_ACCOUNT
oderANY_USER_ACCOUNT
verwendet, können Nutzer nicht auf die Airflow-Benutzeroberfläche zugreifen und landen in einer Anmeldeschleife. Weitere Informationen zur Lösung dieses Szenarios finden Sie unter Zugriff auf die Airflow-Benutzeroberfläche in VPC Service Controls-Eingangsregeln zulassen.
Auf die Airflow-Benutzeroberfläche 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 gewährt Zugriff auf die Benutzeroberfläche 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 basiert.
Über die Google Cloud Console auf die Airflow-Benutzeroberfläche zugreifen
So greifen Sie über die Google Cloud Console auf die Airflow-Benutzeroberfläche zu:
Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.
Klicken Sie in der Spalte Airflow-Webserver auf den Link Airflow für Ihre Umgebung.
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-Benutzeroberfläche zugreifen. Führen Sie in der Google Cloud CLI den folgenden Befehl aus, um die URL für die Airflow-Benutzeroberfläche abzurufen:
gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION
Ersetzen Sie Folgendes:
ENVIRONMENT_NAME
: der Name Ihrer UmgebungLOCATION
: die Region, in der sich die Umgebung befindet.
Der Google Cloud-Befehl für die Befehlszeile zeigt die Eigenschaften einer Cloud Composer-Umgebung an, einschließlich der URLs für die Airflow-Benutzeroberfläche.
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 in Ihrem Projekt die Workforce Identity-Föderation 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 beta composer environments restart-web-server ENVIRONMENT_NAME \
--location=LOCATION
Ersetzen Sie Folgendes:
ENVIRONMENT_NAME
: der Name Ihrer UmgebungLOCATION
: 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 konfigurieren Sie den Webserverzugriff separat. 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
Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.
Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Umgebung. Die Seite Umgebungsdetails wird geöffnet.
Rufen Sie den Tab Umgebungskonfiguration auf.
Suchen Sie im Bereich Netzwerkkonfiguration nach dem Element Webserver-Zugriffssteuerung und klicken Sie auf Bearbeiten.
Im Dialogfeld Webserver-Netzwerkzugriffssteuerung:
Wenn Sie den Zugriff auf den Airflow-Webserver von allen IP-Adressen aus ermöglichen 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 mehrere Bereiche angeben möchten, klicken Sie auf IP-Bereich hinzufügen.
Wenn Sie den Zugriff für alle IP-Adressen verweigern 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 Parameter für den Webserverzugriff:
--web-server-allow-all
bietet Zugriff auf Airflow von allen IP-Adressen aus. 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
verbietet 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 UmgebungLOCATION
: 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 \
--web-server-allow-ip ip_range=192.0.2.0/24,description="example range" \
--web-server-allow-ip ip_range=192.0.4.0/24,description="example range 2"
API
Erstellen Sie eine [
environments.patch
][api-patch] API-Anfrage.In dieser Anfrage:
Geben Sie im
updateMask
-Parameter dieconfig.webServerNetworkAccessControl
-Maske an.Geben Sie im Anfragetext an, wie Airflow-Aufgabenprotokolle gespeichert werden müssen:
Wenn Sie Zugriff auf Airflow über alle IP-Adressen gewähren möchten, geben Sie ein leeres
config
-Element an. DaswebServerNetworkAccessControl
-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 der Zugriff für alle IP-Adressen verboten werden soll, geben Sie ein leeres
webServerNetworkAccessControl
-Element an. DaswebServerNetworkAccessControl
-Element muss vorhanden sein, darf aber keinallowedIpRanges
-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
die 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"
}
}
}