Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Apache Airflow enthält eine Web-Benutzeroberfläche, über die Sie Workflows (DAGs) verwalten, die Airflow-Umgebung verwalten und administrative Aktionen durchfü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 die Airflow-UI-Zugriffssteuerung (Role-Based Access Control, rollenbasierte Zugriffssteuerung) von Airflow für die Airflow-Weboberfläche.
Wenn die API-Steuerung > Nicht konfigurierte Drittanbieter-Apps > Option Nutzer dürfen nicht auf Drittanbieter-Apps zugreifen in Google Workspace und Apache Airflow Cloud Composer-Anwendung nicht explizit zugelassen ist, dann Nutzer nicht auf die Airflow-UI zugreifen können, es sei denn, die . Um Zugriff zu gewähren, folgen Sie den Schritten unter Zugriff auf die Airflow-UI in Google Workspace gewähren
Auf die Airflow-Weboberfläche zugreifen
Der Airflow-Webserver wird als Arbeitslast im Cluster Ihrer Umgebung ausgeführt. Der Webserver ist
in der Domain composer.googleusercontent.com
bereitgestellt und bietet Zugriff auf
der Airflow-Weboberfläche angezeigt.
Cloud Composer 2 bietet Zugriff auf die Oberfläche basierend auf Nutzeridentitäten und IAM-Richtlinienbindungen für Nutzer definiert. 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 Weboberfläche zugreifen
So greifen Sie über die Google Cloud Console auf die Airflow-Weboberflä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.
Zugriff auf den Airflow-Webserver beschränken
Mit Composer-Umgebungen können Sie den Zugriff auf den Airflow-Webserver beschränken:
- Sie können den gesamten Zugriff blockieren oder den Zugriff von bestimmten externen IPv4- oder IPv6-Adressen zulassen IP-Bereiche
- Es ist nicht möglich, die zulässigen IP-Bereiche mithilfe privater 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 UmgebungLOCATION
: die Region, in der sich die Umgebung befindet.
Der gcloud
-Befehl zeigt die Attribute einer Cloud Composer-Umgebung an, einschließlich der URLs für die Weboberfläche. Die URLs lauten
aufgelistet als airflowUri
und airflowByoidUri
:
- Die URL-Adresse „
airflowUri
“ wird von Google-Konten verwendet. - Die URL-Adresse
airflowByoidUri
wird von externen Identitäten verwendet, wenn Sie konfigurieren die Mitarbeiteridentitätsföderation in Ihrem Projekt.
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
Netzwerkzugriff für Webserver konfigurieren
Die Zugriffsparameter des Airflow-Webservers hängen nicht vom Typ Ihres zu verbessern. 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 mit privaten IP-Adressen konfiguriert werden Adressen.
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.
Gehen Sie im Dialogfeld Webserver-Netzwerkzugriffssteuerung so vor:
Wenn Sie von allen IP-Adressen aus Zugriff auf den Airflow-Webserver 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 Geben Sie im Feld IP-Bereich einen IP-Bereich in der CIDR-Notation an. In Beschreibung eine optionale Beschreibung Bereich. Wenn Sie mehr als einen Bereich angeben möchten, klicken Sie auf IP-Adresse hinzufügen Bereich.
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
Wenn Sie eine Umgebung aktualisieren, wird der Webserver mit folgenden Argumenten gesteuert Zugriffsparameter:
--web-server-allow-all
bietet von allen IP-Adressen Zugriff auf Airflow. 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 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="office net 1" \
--web-server-allow-ip ip_range=192.0.4.0/24,description="office net 3"
API
Erstellen Sie eine API-Anfrage [
environments.patch
][api-patch].In dieser Anfrage:
Geben Sie im
updateMask
-Parameter dieconfig.webServerNetworkAccessControl
-Maske an.Geben Sie im Anfragetext an, wie Airflow-Aufgabenlogs konfiguriert werden müssen gespeichert:
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 an Bereiche in
allowedIpRanges
.Um den Zugriff für alle IP-Adressen zu verbieten, geben Sie ein leeres Feld an
webServerNetworkAccessControl
-Element. DiewebServerNetworkAccessControl
-Element muss vorhanden sein, aber darf 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": "office net 1"
},
{
"value": "192.0.4.0/24",
"description": "office net 3"
}
]
}
}
}
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:
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"
}
}
}