Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Auf dieser Seite wird gezeigt, wie Sie Einschränkungen für Ressourcenstandorte konfigurieren, um dafür zu sorgen, dass Ihre von Cloud Composer gespeicherten Daten an den von Ihnen angegebenen Speicherorten liegen.
Funktionsweise von Standortbeschränkungen
Standortbeschränkungen für Cloud Composer werden anhand der Organisationsrichtlinie festgelegt, die auf das Projekt angewendet wird, in dem die Cloud Composer-Umgebung erstellt wird. Diese Richtlinie wird entweder innerhalb des Projekts zugewiesen oder von der Organisation übernommen.
Bei aktivierten Standortbeschränkungen ist es nicht möglich, eine Umgebung in einer Region zu erstellen, die durch die Richtlinie verboten ist. Wenn eine Region in der Sperrliste aufgeführt oder nicht in der Zulassungsliste" aufgeführt ist, können Sie in dieser Region keine Umgebungen erstellen.
Damit die Erstellung von Umgebungen möglich ist, muss die Richtlinie die gesamte Region und nicht nur eine bestimmte Zone innerhalb dieser Region zulassen. Beispielsweise muss die Region europe-west3
von der Richtlinie zugelassen werden, um Cloud Composer-Umgebungen in dieser Region zu erstellen.
Cloud Composer prüft die Standortbeschränkungen unter:
- Umgebung erstellen
- Umgebungsupgrade, falls während des Vorgangs zusätzliche Ressourcen erstellt werden
- Aktualisierung der Umgebung für ältere Umgebungen, die keine Standorteinschränkungen für Cloud Composer-Abhängigkeiten erzwingen
Neben den Standortbeschränkungen führt Cloud Composer folgende Schritte aus:
- Benutzerdefinierte Airflow-Images in regionalen Artifact Registry-Repositories speichern
- Wenn der multiregionale Standort
US
durch den ist die Verwendung von Cloud Build deaktiviert. In diesem Fall Airflow-Images werden in Ihrem GKE-Cluster erstellt.
Python-Abhängigkeit in einer privaten IP-Umgebung mit Einschränkungen für Ressourcenstandorte installieren
Wenn Sie für Ihr Projekt Einschränkungen für den Ressourcenstandort festlegen, kann Cloud Build nicht zum Installieren von Python-Paketen verwendet werden. Infolgedessen der direkte Zugriff auf Repositories im öffentlichen Internet ist deaktiviert.
Wenn Sie Python-Abhängigkeiten in einer privaten IP-Umgebung installieren möchten, wenn Ihre Standortbeschränkungen den multiregionalen Standort US
nicht zulassen, verwenden Sie eine der folgenden Optionen:
Verwenden Sie ein privates PyPI-Repository, das in Ihrem VPC-Netzwerk gehostet wird.
Stellen Sie mit einem Proxyserver in Ihrem VPC-Netzwerk eine Verbindung zu einem PyPI-Repository im öffentlichen Internet her. Geben Sie die Proxyadresse in der Datei
/config/pip/pip.conf
im Cloud Storage-Bucket an.Wenn Ihre Sicherheitsrichtlinie den Zugriff auf Ihr VPC-Netzwerk von externen IP-Adressen aus zulässt, können Sie Cloud NAT konfigurieren.
Speichern Sie die Python-Abhängigkeiten im Ordner
dags
im Cloud Storage-Bucket, um sie als lokale Bibliotheken zu installieren. Dies ist möglicherweise keine gute Option, wenn die Abhängigkeitsstruktur groß ist.
Standorte für Cloud Composer-Logs einschränken
Wenn Ihre Cloud Composer-Logs sensible Daten enthalten, sollten Sie Cloud Composer-Logs an einen regionalen Cloud Storage-Bucket weiterleiten. Verwenden Sie dazu eine Logsenke. Nachdem Sie Logs an einen Cloud Storage-Bucket weitergeleitet haben, werden Ihre Logs nicht an Cloud Logging gesendet.
gcloud
Erstellen Sie einen neuen Cloud Storage-Bucket.
gcloud storage buckets create gs://BUCKET_NAME --location=LOCATION
Ersetzen Sie:
LOCATION
durch die Region, in der sich die Umgebung befindet.BUCKET_NAME
durch den Namen des Buckets. Beispiel:composer-logs-us-central1-example-environment
Erstellen Sie eine neue Logsenke.
gcloud logging sinks create \ composer-log-sink-ENVIRONMENT_NAME \ storage.googleapis.com/BUCKET_NAME \ --log-filter "resource.type=cloud_composer_environment AND \ resource.labels.environment_name=ENVIRONMENT_NAME AND \ resource.labels.location=LOCATION"
Ersetzen Sie:
ENVIRONMENT_NAME
durch den Namen der Umgebung.BUCKET_NAME
durch den Namen des Buckets.LOCATION
durch die Region, in der sich die Umgebung befindet.
Die Ausgabe des vorherigen Befehls enthält die Dienstkontonummer. Weisen Sie diesem Dienstkonto die Rolle Storage-Objekt-Ersteller zu:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SA_NUMBER@gcp-sa-logging.iam.gserviceaccount.com" \ --role='roles/storage.objectCreator' \ --condition=None
Ersetzen Sie:
PROJECT_ID
durch die Projekt-ID.SA_NUMBER
durch die Dienstkontonummer, die im vorherigen Schritt durch den Befehlgcloud logging sinks create
bereitgestellt wurde.
Schließen Sie die Logs für Ihre Umgebung vom Monitoring aus.
gcloud logging sinks update _Default \ --add-exclusion name=ENVIRONMENT_NAME-exclusion,filter=\ "resource.type=cloud_composer_environment AND \ resource.labels.environment_name=ENVIRONMENT_NAME AND \ resource.labels.location=LOCATION"
Ersetzen Sie:
ENVIRONMENT_NAME
durch den Namen der Umgebung.LOCATION
durch die Region, in der sich die Umgebung befindet.