Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)
Apache Airflow enthält eine Webbenutzeroberfläche namens Airflow-UI, über die Sie Airflow-DAGs verwalten, DAG-Ausführungsprotokolle ansehen, Airflow überwachen und administrative Aktionen ausführen können.
Airflow-Webserver
Jede Managed Airflow-Umgebung hat einen Webserver, auf dem die Airflow-UI ausgeführt wird. Der Webserver ist Teil der Managed Airflow-Umgebungsarchitektur.
Hinweis
Sie benötigen eine Rolle, die Managed Airflow-Umgebungen aufrufen kann. Weitere Informationen finden Sie unter Zugriffssteuerung.
Während der Erstellung der Umgebung konfiguriert Managed Airflow die URL für den Webserver, auf dem die Airflow-UI ausgeführt wird. Die URL kann nicht angepasst werden.
Managed Airflow (Gen 3) unterstützt das Feature „Airflow-UI-Zugriffssteuerung“ (Airflow Role-Based Access Control) für die Airflow-UI.
Wenn in Google Workspace die Option API-Steuerung > Nicht konfigurierte Drittanbieter-Apps > Nutzern den Zugriff auf Drittanbieter-Apps nicht erlauben aktiviert ist und die App „Apache Airflow in Managed Airflow“ nicht explizit zugelassen ist, können Nutzer nicht auf die Airflow-UI zugreifen, es sei denn, sie lassen die Anwendung explizit zu. Führen Sie die Schritte unter Zugriff auf die Airflow-UI in Google Workspace zulassenaus, um den Zugriff zuzulassen.
Wenn Chrome Enterprise Premium Bindungen für den kontextsensitiven Zugriff mit Zugriffsebenen verwendet werden, die auf Geräteattributen basieren, und die App „Apache Airflow in Managed Airflow“ nicht ausgenommen ist, ist der Zugriff auf die Airflow-UI aufgrund einer Anmeldeschleife nicht möglich. Führen Sie die Schritte unter Zugriff auf die Airflow-UI 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 Managed Airflow-Dienst zulässt, den Identitätstyp
ANY_SERVICE_ACCOUNToderANY_USER_ACCOUNTverwendet, können Nutzer nicht auf die Airflow-UI zugreifen und geraten in eine Anmeldeschleife. Weitere Informationen zur Behebung dieses Problems finden Sie unter Zugriff auf die Airflow-UI in VPC Service Controls-Regeln für eingehenden Traffic zulassen.Managed Airflow unterstützt die Verwendung von Drittanbieteridentitäten in Regeln für ein- und ausgehenden Traffic nicht, um Apache Airflow-UI-Vorgänge zuzulassen. Sie können jedoch den Identitätstyp
ANY_IDENTITYin Regeln für ein- und ausgehenden Traffic verwenden, um den Zugriff auf alle Identitäten, einschließlich Drittanbieteridentitäten, zu ermöglichen. Weitere Informationen zumANY_IDENTITYIdentitätstyp finden Sie unter Regeln für ein- und ausgehenden Traffic.
Auf die Airflow-UI zugreifen
In Managed Airflow (Gen 3) wird der Airflow-Webserver
im Mandantenprojekt Ihrer Umgebung ausgeführt. Der Webserver wird in der Domain composer.googleusercontent.com bereitgestellt und bietet Zugriff auf die Airflow-UI.
Managed Airflow (Gen 3) bietet Zugriff auf die Benutzeroberfläche basierend auf Nutzeridentitäten und IAM-Richtlinienbindungen, die für Nutzer definiert sind.
Über die Google Cloud console auf die Airflow-UI zugreifen
So greifen Sie über die Google Cloud console auf die Airflow-UI zu:
Rufen Sie in der Google Cloud console die Umgebungen Seite 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-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 UmgebungLOCATION: die Region, in der sich die Umgebung befindet
Der Google Cloud CLI-Befehl zeigt die Attribute einer Managed Airflow-Umgebung, einschließlich der URLs für die Airflow-UI.
Die URLs sind als airflowUri und airflowByoidUri aufgeführt:
- Die URL-Adresse
airflowUriwird von Google-Konten verwendet. - Die URL-Adresse
airflowByoidUriwird von externen Identitäten verwendet, wenn Sie in Ihrem Projekt die Mitarbeiteridentitätsfö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
Beim Debugging oder der Fehlerbehebung in Managed Airflow-Umgebungen können einige Probleme möglicherweise durch einen Neustart des Airflow-Webservers behoben werden. Sie können den Web
server mit der restartWebServer API
oder dem restart-web-server Befehl 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 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.
Es ist nicht möglich, die zulässigen IP-Bereiche als private IP-Adressen zu konfigurieren.
Console
Rufen Sie in der Google Cloud console die Umgebungen Seite 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 das Element Webserver-Zugriffssteuerung und klicken Sie auf Bearbeiten.
Gehen Sie im Dialogfeld Webserver-Netzwerkzugriffssteuerung so vor:
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 erlauben 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 leeren Bereichseintrag auf Element löschen.
gcloud
Beim Aktualisieren einer Umgebung steuern die folgenden Argumente die Zugriffsparameter des Webservers:
--web-server-allow-allermöglicht den Zugriff auf Airflow von allen IP-Adressen aus. Dies ist die Standardoption.--update-web-server-allow-ipbeschränkt den Zugriff auf bestimmte Quell-IP-Bereiche. Wenn Sie mehrere IP-Bereiche angeben möchten, verwenden Sie dieses Argument mehrmals.--web-server-deny-allverbietet 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 UmgebungLOCATION: die Region, in der sich die Umgebung befindetWS_IP_RANGE: der IP-Bereich (in CIDR-Notation), der auf die Airflow-UI zugreifen darfWS_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
Erstellen Sie eine [
environments.patch][api-patch]-API-Anfrage.In dieser Anfrage:
Geben Sie im Parameter
updateMaskdie Maskeconfig.webServerNetworkAccessControlan.Geben Sie im Anfragetext an, wie Airflow-Aufgabenprotokolle gespeichert werden müssen:
Wenn Sie den Zugriff auf Airflow von allen IP-Adressen aus ermöglichen möchten, geben Sie ein leeres
config-Element an (das ElementwebServerNetworkAccessControldarf nicht vorhanden sein).Wenn Sie den Zugriff auf bestimmte IP-Bereiche beschränken möchten, geben Sie einen oder mehrere Bereiche in
allowedIpRangesan.Wenn Sie den Zugriff für alle IP-Adressen verbieten möchten, geben Sie ein leeres
webServerNetworkAccessControl-Element an. Das ElementwebServerNetworkAccessControlmuss 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 darfWS_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 in 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 darfWS_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"
}
}
}