Umgebungen erstellen

Auf dieser Seite wird erläutert, wie Sie eine Cloud Composer-Umgebung erstellen und dabei die Standardeinstellungen für die Airflow-Umgebung überschreiben.

In einer Cloud Composer-Umgebung wird die Apache Airflow-Software ausgeführt. Beim Erstellen einer neuen Umgebung in einem Google Cloud-Projekt können Sie verschiedene Parameter angeben, wie z. B. den Maschinentyp von Compute Engine oder die Anzahl der Knoten im Cluster.

Vorbereitung

Zugriffssteuerung

  • Zum Erstellen von Cloud Composer-Umgebungen benötigen Sie die Berechtigung composer.environments.create. Weitere Informationen dazu finden Sie unter Zugriffssteuerung.

  • Die Freigabe von Domains für Cloud Composer ist derzeit in der Betaphase. Wenn Sie die Richtlinie Freigabe mit Domaineinschränkung aktiviert haben, müssen Sie zum Erstellen einer Cloud Composer-Umgebung die Beta API verwenden. Unter Beta-Feature-Unterstützung erfahren Sie, wie Sie mit der Beta API eine Cloud Composer-Umgebung bereitstellen können.

  • Standardmäßig werden Cloud Composer-Umgebungen als Standarddienstkonto für Compute Engine ausgeführt. Während der Umgebungserstellung können Sie ein benutzerdefiniertes Dienstkonto angeben. Damit das Dienstkonto auf Ressourcen in der Cloud Composer-Umgebung zugreifen kann, braucht es mindestens die in der Rolle composer.worker enthaltenen Berechtigungen. Unter Umständen werden in der IAM-Richtlinie Ihres Projekts oder in der GCP Console weitere Dienstkonten von Google angezeigt, etwa service-<var>PROJECT_ID</var>@cloudcomposer-accounts.iam.gserviceaccount.com. Informationen zu den verfügbaren Typen und Rollen finden Sie unter Von Google verwaltete Dienstkonten.

  • Wenn das benutzerdefinierte Dienstkonto beim Ausführen der Aufgabe auf andere Ressourcen in Ihrem Google Cloud-Projekt zugreifen muss, können Sie dem Dienstkonto die dafür erforderlichen Berechtigungen hinzufügen. Sie können auch die entsprechenden Anmeldeinformationen als Airflow-Verbindung bereitstellen und dann im Operator auf die Verbindung verweisen.

  • Cloud Composer wird derzeit nicht von VPC Service Controls unterstützt. Ein Cloud Composer-Projekt sollte in keinem Dienstperimeter enthalten sein.

    Weitere Informationen dazu finden Sie unter Bekannte Einschränkungen für VPC Service Controls.

Beta-Features

  • Um Beta-Features in Ihrer Umgebung verwenden zu können, müssen Sie in der Cloud Console die Beta-Feature-Unterstützung aktivieren.

  • Wenn Sie eine Umgebung erstellen, in der Beta-Features verwendet werden, müssen Sie die Umgebung auch über die Beta-Benutzeroberfläche aktualisieren oder löschen. Informationen finden Sie unter Unterstützung für Beta-Features.

  • Freigegebene VPC: Für die Verwendung der freigegebenen VPC mit Cloud Composer gelten bestimmte Netzwerkanforderungen. Informationen dazu finden Sie unter Freigegebene VPC konfigurieren.

  • Private IP-Adressen: Für das Erstellen einer Cloud Composer-Umgebung mit privaten IP-Adressen gelten bestimmte Netzwerk- und Peering-Anforderungen. Informationen finden Sie unter Private IP-Umgebung in Cloud Composer konfigurieren.

Neue Umgebung erstellen

So erstellen Sie eine Cloud Composer-Umgebung:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Umgebung erstellen auf.

    Seite "Umgebung erstellen" öffnen

  2. Geben Sie einen Namen für die Umgebung ein.

    Der Name muss mit einem Kleinbuchstaben beginnen, gefolgt von bis zu 63 Kleinbuchstaben, Ziffern oder Bindestrichen. Das letzte Zeichen darf kein Bindestrich sein.

  3. Geben Sie unter Knotenkonfiguration die Einstellungen für Knoten im Google Kubernetes Engine-Cluster an. Wenn Sie keine Einstellung vornehmen, wird die Standardeinstellung verwendet.

    Einstellung Beschreibung
    Knotenzahl Die Anzahl der Google Kubernetes Engine-Knoten, die zum Ausführen der Umgebung verwendet werden. Der Standardwert beträgt 3 Knoten. Die Knotenzahl ist die einzige Einstellung des Google Kubernetes Engine-Clusters, die Sie nach dem Erstellen der Umgebung ändern können.
    Speicherort (Erforderlich) Die Compute Engine-Region, in der die Umgebung erstellt wird.
    Zonensuffix Die Compute Engine-Zone, in der die Instanzen der virtuellen Maschine erstellt werden, auf denen Apache Airflow ausgeführt wird. Wenn nicht angegeben, wird eine zufällige Zone innerhalb des Standorts ausgewählt.
    Maschinentyp Der für Clusterinstanzen verwendete Compute Engine-Maschinentyp. Der Maschinentyp bestimmt die Anzahl der CPUs und den Umfang des Arbeitsspeichers für Ihre Umgebung. Der Standardmaschinentyp ist "n1-standard-1".
    Laufwerkgröße Die Laufwerkgröße in GB, die für die VM-Instanzen des Knotens verwendet wird. Die Mindestgröße beträgt 20 GB und die Standardgröße 100 GB.
    OAuth-Bereiche Der Satz der Google API-Bereiche, der auf allen VM-Instanzen des Knotens verfügbar ist. Die Standardeinstellung lautet https://www.googleapis.com/auth/cloud-platform und muss in der Liste der angegebenen Bereiche enthalten sein.
    Dienstkonto Das Google Cloud-Dienstkonto, das von den VM-Instanzen des Knotens verwendet werden soll. Wenn nicht angegeben, wird das Compute Engine-Standarddienstkonto verwendet.
    Tags Die Liste der Instanztags, die auf alle VM-Instanzen des Knotens angewendet werden. Tags werden verwendet, um gültige Quellen oder Ziele für Netzwerk-Firewalls zu bestimmen. Jedes Tag in der Liste muss RFC 1035 befolgen.
    Image-Version Die Cloud Composer-Version, die für Ihre Umgebung verwendet werden soll (enthält sowohl die Cloud Composer- als auch die Airflow-Version). Informationen zur Standardversion finden Sie unter Liste der Cloud Composer-Versionen.
    Python-Version Die für Ihre Umgebung zu verwendende Python-Version. Unterstützte Versionen sind Python 2 und Python 3. Die Standardversion ist 3.
  4. Geben Sie unter Netzwerkkonfiguration die Netzwerkeinstellungen für den Google Kubernetes Engine-Cluster an. Wenn Sie keine Einstellung vornehmen, wird die Standardeinstellung verwendet.

    Einstellung Beschreibung
    VPC-nativ aktivieren (mithilfe von Alias-IP-Adressen) Erstellt einen VPC-nativen GKE-Cluster mit Alias-IP-Adressen für Ihre Umgebung. Dabei wird standardmäßig ein routenbasierter GKE-Cluster verwendet. Erforderlich für eine private IP-Umgebung in Cloud Composer.
    Netzwerk Das Virtual Private Cloud-Netzwerk, das für die Maschinenkommunikation verwendet wird. Das Netzwerk ist für das Festlegen eines Subnetzwerks erforderlich. Ohne Angabe wird das Standardnetzwerk verwendet. Freigegebene VPC erfordert ein Hostprojekt.
    Subnetzwerk Das Virtual Private Cloud-Subnetzwerk, das für die Maschinenkommunikation verwendet wird. Wenn für das Netzwerk ein benutzerdefinierter Modus genutzt wird, ist das Subnetzwerk erforderlich.
    Zuweisung von Pod-IP-Adressen Der sekundäre Bereich für die Zuweisung von IP-Adressen zu Pods im GKE-Cluster. Ohne Angabe eines Werts wird ein neuer sekundärer Bereich erstellt. Diese Einstellung ist dauerhaft.
    Zuweisung von Dienst-IP-Adressen Der sekundäre Bereich, in dem Speicherplatz für Cloud Composer-Dienste reserviert wird. Ohne Angabe eines Werts wird ein neuer sekundärer Bereich erstellt. Diese Einstellung ist dauerhaft.
    Private IP-Umgebung Aktiviert eine Cloud Composer-Umgebung mit privater IP-Adresse. Standardmäßig deaktiviert.
    Auf GKE-Master mit dessen externer IP-Adresse zugreifen Aktiviert den öffentlichen Zugriff auf den Master des GKE-Clusters. Erfordert eine Umgebung mit privater IP-Adresse.
    IP-Bereich GKE-Master Der private RFC 1918-Bereich für die VPC des Masters. Wenn der Bereich nicht angegeben wird, wird der Standardwert 172.16.0.0/28 verwendet. Erforderlich für die private IP-Umgebung.
  5. (Beta) Geben Sie unter Webserver-Netzwerkzugriffssteuerung die IP-Bereiche an, die auf den Airflow-Webserver für Ihre Umgebung zugreifen können.

    Einstellung Beschreibung
    Zugriff von allen IP-Adressen zulassen (Standardeinstellung) Alle IP-Bereiche können auf den Airflow-Webserver zugreifen.
    Zugriff nur von bestimmten IP-Adressen zulassen Nur bestimmte IP-Bereiche können auf den Webserver zugreifen. Zum Hinzufügen eines neuen Bereichs klicken Sie auf IP-Bereich hinzufügen. Zum Entfernen eines Bereichs klicken Sie auf das Papierkorbsymbol für diese Zeile. Zum Ablehnen aller IP-Bereiche löschen Sie alle Zeilen.
  6. (Optional) Klicken Sie zum Ändern oder Überschreiben der Standardwerte in der Airflow-Konfigurationsdatei (airflow.cfg) auf Airflow-Konfigurationsattribut hinzufügen.

  7. Optional: Zum Konfigurieren von Umgebungsvariablen klicken Sie auf Umgebungsvariable hinzufügen. Informationen zu den Anforderungen finden Sie unter Umgebungsvariablen.

  8. Optional: Zum Hinzufügen eines Labels klicken Sie auf Labels hinzufügen.

    Labelschlüssel und Labelwerte dürfen nur Buchstaben, Zahlen, Bindestriche und Unterstriche enthalten. Labelschlüssel müssen mit einem Buchstaben oder einer Zahl beginnen.

  9. Klicken Sie auf Erstellen.

gcloud

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    OTHER_ARGUMENTS

Folgende Parameter sind erforderlich:

  • ENVIRONMENT_NAME ist der Name der Umgebung. Der Wert muss folgendem Muster entsprechen: ^[a-z](?:[-0-9a-z]{0,62}[0-9a-z])?$.
  • LOCATION ist die Compute Engine-Region, in der sich die Umgebung befindet. Achten Sie darauf, dass am von Ihnen angegebenen Standort Composer verfügbar ist.

Die folgenden Argumente sind optional:

  • airflow-configs ist eine Liste der Airflow-Konfigurationsüberschreibungen im Format SECTION_NAME-PROPERTY_NAME=VALUE. Der Abschnittsname und der Eigenschaftsname müssen durch einen Bindestrich getrennt sein.
  • disk-size ist die Laufwerkgröße in GB, die für die Knoten-VMs verwendet wird. Die Mindestgröße beträgt 20 GB und die Standardlaufwerkgröße 100 GB.
  • env-variables ist eine Liste der Umgebungsvariablen im Format NAME=VALUE, die für die Airflow-Planer-, Worker- und Webserverprozesse festgelegt sind.
  • enable-private-environment aktiviert eine Cloud Composer-Umgebung mit privater IP-Adresse.
    • master-ipv4-cidr ist der private RFC 1918-Bereich für die VPC des Masters. Erforderlich, wenn enable-private-environment "wahr" ist .
  • enable-private-endpoint aktiviert den öffentlichen Zugriff auf den GKE-Clustermaster. Erfordert enable-private-environment.
  • enable-ip-alias aktiviert "VPC-nativ (mithilfe der Alias-IP)". Erforderlich, wenn enable-private environment "wahr" ist , oder um sekundäre Bereiche für Pods und Dienste zu konfigurieren:
    • cluster-secondary-range-name oder cluster-ipv4-cidr konfiguriert den sekundären Bereich für Pods.
    • services-secondary-range-name oder services-ipv4-cidr konfiguriert den sekundären Bereich für Dienste.
  • image-version ist die composer-addon-Version und die Airflow-Version für Ihre Umgebung im Format composer-a.b.c-airflow-x.y.z. Informationen zum Versionsalias und zur Standardversion finden Sie unter Versionsverwaltung für Cloud Composer.
  • labels sind benutzerdefinierte Labels, die der Umgebung und deren Ressourcen zugeordnet sind.
  • machine-type ist der Compute Engine-Maschinentyp. Der Maschinentyp bestimmt die Anzahl der CPUs und den Arbeitsspeicher für Ihre Umgebung. Der Standardmaschinentyp ist n1-standard-1. Dafür ist das Flag --zone erforderlich.
  • network ist das Virtual Private Cloud-Netzwerk, das für die Maschinenkommunikation verwendet wird.
    • Das Netzwerk ist für das Festlegen eines Subnetzwerks erforderlich. Ohne Angabe wird das Standardnetzwerk verwendet.
    • Bei Verwendung einer freigegebenen VPC muss der relative Ressourcenname des Netzwerks im Format projects/HOST_PROJECT_ID/global/networks/NETWORK_ID angegeben werden. Informationen zu den Anforderungen für ein freigegebenes VPC-Subnetzwerk finden Sie nachfolgend unter subnetwork.
  • node-count ist die Anzahl von GKE-Knoten, die zum Ausführen der Umgebung verwendet werden. Die Standardknotenzahl ist 3. Die Knotenzahl ist die einzige Einstellung des Google Kubernetes Engine-Cluster, die Sie nach dem Erstellen der Umgebung ändern können.
  • oauth-scopes sind die Google API-Bereiche, die auf allen Knoten-VMs verfügbar sind. Der standardmäßige OAuth-Bereich lautet https://www.googleapis.com/auth/cloud-platform und muss in die Liste der Bereiche aufgenommen werden, sofern angegeben.
  • python-version ist die Python-Version, die für Ihre Umgebung verwendet werden soll. Unterstützte Versionen sind Python 2 und Python 3. Die Standardversion ist 2.
  • subnetwork ist das Compute Engine-Subnetzwerk, mit dem die Umgebung verbunden ist.
    • Wenn für das Netzwerk ein benutzerdefinierter Modus genutzt wird, ist das Subnetzwerk erforderlich.
    • Wenn Sie eine freigegebene VPC-Umgebung mit gcloud erstellen, müssen Sie die sekundären IP-Bereiche composer-pods und composer-services verwenden. Mithilfe der Cloud Composer API können Sie unterschiedliche sekundäre Bereichsnamen angeben. Der Name des Subnetzwerks muss auch als relativer Ressourcenname im Format projects/HOST_PROJECT_ID/regions/REGION_ID/subnetworks/SUBNET_ID festgelegt werden. Die freigegebene VPC befindet sich in der Betaphase und erfordert den Befehl gcloud beta composer environments create.
  • service-account ist das Google Cloud-Dienstkonto, das von den VM-Instanzen des Knotens verwendet werden soll. Wenn nicht angegeben, wird das Compute Engine-Standarddienstkonto verwendet.
  • tags ist die Liste der Instanztags, die auf alle VM-Instanzen des Knotens angewendet werden. Mit Tags werden gültige Quellen oder Ziele für Netzwerkfirewalls bestimmt. Jedes Tag in der Liste muss RFC 1035 entsprechen.

Im folgenden Beispiel wird eine Umgebung erstellt, in der die neueste unterstützte Cloud Composer-Image-Version in der Region us-central1 ausgeführt wird, die den Maschinentyp n1-standard-2 mit einem beta-Umgebungslabel verwendet:

gcloud beta composer environments create test-environment \
    --location us-central1 \
    --zone us-central1-f \
    --machine-type n1-standard-2 \
    --image-version composer-latest-airflow-x.y.z \
    --labels env=beta  

Im folgenden Beispiel für freigegebene VPCs wird eine Umgebung im Hostprojekt erstellt. Die Umgebung befindet sich in der Region us-central1 und verwendet den Maschinentyp n1-standard-2 mit einem beta-Umgebungslabel:

gcloud beta composer environments create host-project-environment \
    --network vpc-network-name --subnetwork vpc-subnetwork-name
    --location us-central1 \
    --zone us-central1-f \
    --machine-type n1-standard-2 \
    --labels env=beta  

API

Zum Erstellen einer neuen Cloud Composer-Umgebung mit der Cloud Composer REST API erstellen Sie eine environments.create-API-Anfrage und geben für die Ressource Environment Ihre Konfigurationsinformationen an.

E-Mail-Benachrichtigungen konfigurieren

SendGrid-E-Mail-Dienste konfigurieren

Damit Sie Benachrichtigungen erhalten, konfigurieren Sie Ihre Umgebungsvariablen so, dass E-Mails über den SendGrid-E-Mail-Dienst gesendet werden.

  1. Melden Sie sich über die Google Cloud Console bei SendGrid an und erstellen Sie einen API-Schlüssel, sofern noch nicht geschehen. Als Google Cloud-Entwickler können Sie mit 12.000 kostenlosen E-Mails pro Monat starten.

  2. Öffnen Sie in der Cloud Console die Seite Umgebung erstellen.

    Seite "Umgebung erstellen" öffnen

  3. Klicken Sie unter Knotenkonfiguration auf Umgebungsvariable hinzufügen.

  4. Geben Sie die folgenden Umgebungsvariablen ein:

    Name Wert
    SENDGRID_MAIL_FROM Die E-Mail-Adresse des Absenders, z. B. noreply-composer@.
    SENDGRID_API_KEY Ihr SendGrid-API-Schlüssel.
  5. So testen Sie die SendGrid-Konfiguration:

    1. Erstellen Sie einen Test-DAG, der EmailOperator verwendet.
    2. Laden Sie den DAG in Ihre Umgebung hoch und prüfen Sie, ob die EmailOperator-Aufgabe erfolgreich war.
    3. Melden Sie sich bei SendGrid mit Ihren SendGrid-Anmeldedaten an.
    4. Wechseln Sie in der SendGrid-Benutzeroberfläche zur Seite "Aktivität".
    5. Durchsuchen Sie die Liste nach der E-Mail. Es sollte nun sichtbar sein, dass SendGrid die E-Mail verarbeitet und zugestellt hat.
    6. Wenn die E-Mail nicht verarbeitet und nicht zugestellt wurde, gehen Sie so vor:
      • Überprüfen Sie die Sendgrid-Konfiguration.
      • Überprüfen Sie, ob die Umgebungsvariablen SENDGRID_MAIL_FROM und SENDGRID_API_KEY korrekt sind.
      • Überprüfen Sie den Spamfilter in Ihrem E-Mail-Client.

SMTP-Dienste von Drittanbietern konfigurieren

Zum Senden von E-Mails über den SMTP-Dienst eines Drittanbieters müssen Sie die Airflow-Konfiguration email_backend überschreiben.

  1. Öffnen Sie die Seite Umgebung erstellen.

    Zur Seite "Umgebung erstellen"

  2. Klicken Sie unter Airflow-Konfigurationsüberschreibungen auf Airflow Konfigurationsüberschreibung hinzufügen.
  3. Geben Sie die folgenden Konfigurationseigenschaften ein:

    Bereich Schlüssel Wert
    email email_backend airflow.utils.email.send_email_smtp
    smtp smtp_host Der Hostname für den SMTP-Server.
    smtp smtp_user Der Nutzername auf dem SMTP-Server.
    smtp smtp_port Ein anderer Port als Port 25. Port 25 ist gesperrt.
    smtp smtp_password Das Standard-SMTP-Passwort für Airflow. Es kann kein neues Passwort festgelegt werden.
    smtp smtp_mail_from Die E-Mail-Adresse des Absenders, z. B. noreply-composer@.
    smtp smtp_starttls Attribut zur Erhöhung der Sicherheit mit True.
    smtp smtp_ssl Attribut zur Erhöhung der Sicherheit mit True.

Weitere SMTP-Konfigurationen finden Sie unter default_airflow.cfg für Ihre Airflow-Version.

Airflow-Konfiguration überschreiben

Beim Erstellen oder Aktualisieren einer Umgebung können Sie die Konfigurationseigenschaften für Apache Airflow überschreiben. Einige Attribute sind aber gesperrt.

Console

  1. Öffnen Sie die Seite Umgebung erstellen.

    Seite "Umgebung erstellen" öffnen

  2. Klicken Sie unter Airflow-Konfigurationsüberschreibungen auf Airflow Konfigurationsüberschreibung hinzufügen.

  3. Geben Sie den Abschnitt, den Schlüssel und den neuen Wert für die Konfiguration ein.

Beispiel:

Bereich Schlüssel Wert
webserver dag_orientation RL

gcloud

So überschreiben Sie Airflow-Konfigurationen beim Erstellen einer Umgebung:

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --airflow-configs=KEY=VALUE,KEY=VALUE,...

Dabei gilt:

  • ENVIRONMENT_NAME ist der Name der Umgebung.
  • LOCATION ist die Compute Engine-Region, in der sich die Umgebung befindet.
  • KEY=VALUE ist der Konfigurationsabschnitt und der Attributname (durch Bindestrich getrennt, wie z. B. core-print_stats_interval) mit dem entsprechenden Wert.

Beispiel:

gcloud composer environments create test-environment \
    --location us-central1 \
    --airflow-configs=core-load_example=True,webserver-dag_orientation=TB 

Der Befehl wird beendet, wenn der Vorgang abgeschlossen ist. Verwenden Sie das Flag --async, um Wartezeiten zu vermeiden. Weitere Beispiele finden Sie auf der Referenzseite für gcloud composer environments update.

API

Zum Überschreiben von Airflow-Attributen beim Erstellen der Cloud Composer-Umgebung mit der Cloud Composer REST API füllen Sie das optionale Feld airflowConfigOverrides der Environment-Ressource aus, wenn Sie die Anfrage environments.create erstellen.

Nächste Schritte