
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Provision infrastructure
/ 50
Upload files to the bucket
/ 50
Dieses Lab wurde mit unserem Partner Hashicorp entwickelt. Ihre personenbezogenen Daten werden möglicherweise an Hashicorp, den Lab-Sponsor, weitergegeben, wenn Sie in Ihrem Kontoprofil zugestimmt haben, Produktupdates, Mitteilungen und Angebote zu erhalten.
Beim Verwalten Ihrer Infrastruktur mit Terraform entstehen immer komplexere Konfigurationen. Die Komplexität einer Terraform-Konfigurationsdatei oder eines Terraform-Verzeichnisses ist nicht beschränkt, daher können Sie in einem einzigen Verzeichnis immer weitere Konfigurationsdateien erstellen und diese aktualisieren. Diese Vorgehensweise kann jedoch zu den folgenden Problemen führen:
In diesem Lab lernen Sie, wie sich diese Probleme durch Module lösen lassen, welche Struktur Terraform-Module haben sowie welche Best Practices für das Verwenden und Erstellen von Modulen gelten.
Module können die oben beschriebenen Probleme auf verschiedene Weise lösen:
Konfiguration strukturieren: Module erleichtern die Navigation in der Konfiguration, das Verständnis dafür sowie deren Aktualisierung, indem zusammengehörende Teile miteinander verbunden werden. Selbst eine mäßig komplexe Infrastruktur kann Hunderte oder Tausende von Konfigurationszeilen erfordern. Mithilfe von Modulen können Sie die Konfiguration durch logische Komponenten strukturieren.
Konfiguration zusammenfassen: Ein weiterer Vorteil von Modulen ist das Zusammenfassen der Konfiguration in einzelnen logischen Komponenten. So lassen sich unbeabsichtigte Folgen verhindern, z. B. dass eine Änderung an einem Teil der Konfiguration versehentlich zu Änderungen an anderer Infrastruktur führt. Außerdem sinkt die Wahrscheinlichkeit einfacher Fehler wie der Verwendung desselben Namens für zwei verschiedene Ressourcen.
Konfiguration wiederverwenden: Die gesamte Konfiguration zu schreiben, ohne bereits vorhandenen Code zu verwenden, kann zeitaufwendig und fehleranfällig sein. Mit Modulen können Sie dagegen Zeit sparen und teure Fehler vermeiden, indem Sie Konfigurationen wiederverwenden, die von Ihnen selbst, Teammitgliedern oder anderen Terraform-Fachkräften geschrieben wurden, die Module veröffentlicht haben. Auch Sie können die von Ihnen geschriebenen Module für Ihr Team oder die Öffentlichkeit freigeben.
Für Konsistenz und die Anwendung von Best Practices sorgen: Module sorgen außerdem für mehr Konsistenz in Ihren Konfigurationen. Durch Konsistenz wird eine komplexe Konfiguration leichter verständlich und sie trägt dazu bei, dass Best Practices auf die gesamte Konfiguration angewendet werden. Cloud-Anbieter bieten beispielsweise verschiedene Möglichkeiten zum Konfigurieren von Objektspeicherdiensten wie Amazon S3 (Simple Storage Service) oder Cloud Storage-Buckets von Google. Viele aufsehenerregende Sicherheitsvorfälle sind auf nicht ausreichend geschützte Objektspeicher zurückzuführen. Angesichts der Vielzahl komplexer Konfigurationsoptionen kann es leicht passieren, dass diese Dienste falsch konfiguriert werden.
Durch Module lassen sich solche Fehler reduzieren. Sie können zum Beispiel ein Modul erstellen, um festzulegen, wie die öffentlichen Website-Buckets Ihres Unternehmens konfiguriert werden, und ein weiteres für private Buckets für Logging-Anwendungen. Wenn die Konfiguration eines Ressourcentyps aktualisiert werden muss, können Sie dieses Update mithilfe eines Moduls an einem Ort ausführen und es auf alle Bereiche anwenden lassen, in denen dieses Modul zum Einsatz kommt.
Aufgaben in diesem Lab:
Lesen Sie diese Anleitung. Labs sind zeitlich begrenzt und können nicht pausiert werden. Der Timer beginnt zu laufen, wenn Sie auf Lab starten klicken, und zeigt Ihnen, wie lange die Ressourcen für das Lab verfügbar sind.
In diesem praxisorientierten Lab können Sie die Lab-Aktivitäten in einer echten Cloud-Umgebung selbst durchführen – nicht in einer Simulations- oder Demo-Umgebung. Dazu erhalten Sie neue, temporäre Anmeldedaten, mit denen Sie für die Dauer des Labs auf Google Cloud zugreifen können.
Für dieses Lab benötigen Sie Folgendes:
Klicken Sie auf Lab starten. Wenn Sie für das Lab bezahlen müssen, wird ein Pop-up-Fenster geöffnet, in dem Sie Ihre Zahlungsmethode auswählen können. Auf der linken Seite befindet sich der Bereich Details zum Lab mit diesen Informationen:
Klicken Sie auf Google Cloud Console öffnen (oder klicken Sie mit der rechten Maustaste und wählen Sie Link in Inkognitofenster öffnen aus, wenn Sie Chrome verwenden).
Im Lab werden Ressourcen aktiviert. Anschließend wird ein weiterer Tab mit der Seite Anmelden geöffnet.
Tipp: Ordnen Sie die Tabs nebeneinander in separaten Fenstern an.
Kopieren Sie bei Bedarf den folgenden Nutzernamen und fügen Sie ihn in das Dialogfeld Anmelden ein.
Sie finden den Nutzernamen auch im Bereich Details zum Lab.
Klicken Sie auf Weiter.
Kopieren Sie das folgende Passwort und fügen Sie es in das Dialogfeld Willkommen ein.
Sie finden das Passwort auch im Bereich Details zum Lab.
Klicken Sie auf Weiter.
Klicken Sie sich durch die nachfolgenden Seiten:
Nach wenigen Augenblicken wird die Google Cloud Console in diesem Tab geöffnet.
Cloud Shell ist eine virtuelle Maschine, auf der Entwicklertools installiert sind. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft auf Google Cloud. Mit Cloud Shell erhalten Sie Befehlszeilenzugriff auf Ihre Google Cloud-Ressourcen.
Wenn Sie verbunden sind, sind Sie bereits authentifiziert und das Projekt ist auf Ihre Project_ID,
gcloud
ist das Befehlszeilentool für Google Cloud. Das Tool ist in Cloud Shell vorinstalliert und unterstützt die Tab-Vervollständigung.
Ausgabe:
Ausgabe:
gcloud
finden Sie in Google Cloud in der Übersicht zur gcloud CLI.
Ein Terraform-Modul ist eine Gruppe von Terraform-Konfigurationsdateien in einem Verzeichnis. Selbst eine einfache Konfiguration, die aus einem Verzeichnis mit einer oder mehreren .tf
‑Dateien besteht, ist ein Modul. Wenn Sie Terraform-Befehle direkt aus einem solchen Verzeichnis ausführen, gilt es als Stammmodul. In diesem Sinne ist jede Terraform-Konfiguration Teil eines Moduls. Vielleicht haben Sie einen einfachen Satz Terraform-Konfigurationsdateien wie diesen:
Wenn Sie Terraform-Befehle aus dem Verzeichnis minimal-module
ausführen, gilt der Inhalt dieses Verzeichnisses als Stammmodul.
Für Terraform-Befehle werden nur die Konfigurationsdateien aus einem Verzeichnis direkt verwendet. Dies ist üblicherweise das aktuelle Arbeitsverzeichnis. Ihre Konfiguration kann jedoch Modulblöcke verwenden, um Module aus anderen Verzeichnissen aufzurufen. Wenn Terraform einen Modulblock findet, lädt und verarbeitet es die Konfigurationsdateien dieses Moduls.
Ein Modul, das von einer anderen Konfiguration aufgerufen wird, wird manchmal als „untergeordnetes Modul“ dieser Konfiguration bezeichnet.
Module können entweder aus dem lokalen Dateisystem oder einer Remotequelle geladen werden. Terraform unterstützt verschiedene Remotequellen, einschließlich der Terraform Registry, der meisten Versionsverwaltungssysteme, HTTP-URLs sowie privater Terraform Cloud‑ oder Terraform Enterprise-Modul-Registries.
Terraform-Module ähneln in vielerlei Hinsicht den Bibliotheken, Paketen oder Modulen der meisten Programmiersprachen und bieten ähnliche Vorzüge. Wie andere mehr oder weniger komplexe Computerprogramme sollten Terraform-Konfigurationen möglichst Module umfassen, um die oben genannten Vorteile zu ermöglichen.
Dafür werden die folgenden Best Practices empfohlen:
Planen Sie beim Schreiben Ihrer Konfiguration Module ein. Selbst bei nur wenig komplexen Terraform-Konfigurationen, die von einer Person verwaltet werden, überwiegen die Vorteile von Modulen den zeitlichen Aufwand, sie korrekt einzusetzen.
Verwenden Sie lokale Module, um Ihren Code zu strukturieren und zusammenzufassen. Selbst wenn Sie keine Remotemodule verwenden oder veröffentlichen, sinkt durch das Strukturieren der Konfiguration in Modulen von Anfang an der Aufwand für die Verwaltung und Aktualisierung der Konfiguration beträchtlich, wenn die Infrastruktur komplexer wird.
In der öffentlichen Terraform Registry finden Sie nützliche Module. So können Sie Ihre Konfiguration schnell und effektiv implementieren und sich dabei auf die Arbeit anderer stützen.
Veröffentlichen Sie Module und teilen Sie sie mit Ihrem Team. Infrastruktur wird meist von einem Team verwaltet und Module sind ein wichtiges Werkzeug, mit dem Teams Infrastruktur erstellen und verwalten können. Wie bereits erwähnt, können Sie Module öffentlich oder privat freigeben. Wie das funktioniert, erfahren Sie in einem anderen Lab dieser Reihe.
In diesem Abschnitt verwenden Sie Module aus der Terraform Registry, um eine Beispielumgebung in Google Cloud bereitzustellen. Die hier verwendeten Konzepte gelten für Module aus allen Quellen.
Die Seite enthält Informationen über das Modul und einen Link zum Quell-Repository. Auf der rechten Seite befinden sich ein Drop-down-Feld, in dem Sie die Modulversion auswählen können, sowie eine Anleitung zum Bereitstellen von Infrastruktur mit diesem Modul.
Zum Aufrufen eines Moduls wird das source
-Argument benötigt. In diesem Beispiel sucht Terraform in der Terraform Registry nach einem Modul, das mit dem angegebenen String übereinstimmt. Sie können aber auch eine URL oder einen lokalen Dateipfad als Quelle Ihrer Module verwenden. Eine Liste möglicher Modulquellen finden Sie in der Terraform-Dokumentation.
Das andere hier angezeigte Argument ist version
. Bei unterstützten Quellen können Sie darüber festlegen, welche Versionen des Moduls geladen werden sollen. In diesem Lab geben Sie eine genaue Versionsnummer für die verwendeten Module an. Weitere Möglichkeiten, Versionen festzulegen, finden Sie in der Dokumentation zu Modulen.
Andere Argumente für Modulblöcke werden als Eingabevariablen für die Module behandelt.
v6.0.1
zu wechseln:So wird sichergestellt, dass Sie die richtige Versionsnummer verwenden.
Klicken Sie in der Cloud Shell-Symbolleiste auf Editor öffnen. Wenn Sie zwischen Cloud Shell und dem Code-Editor wechseln möchten, klicken Sie auf Editor öffnen bzw. Terminal öffnen oder auf In neuem Fenster öffnen, damit der Editor in einem eigenen Tab geöffnet bleibt.
Wechseln Sie im Editor zu terraform-google-network/examples/simple_project
und öffnen Sie die Datei main.tf
. Ihre main.tf
-Konfiguration sieht so aus:
Diese Konfiguration beinhaltet einen wichtigen Block:
module "test-vpc-module"
definiert eine Virtual Private Cloud (VPC), die Netzwerkdienste für den Rest Ihrer Infrastruktur bereitstellt.Einige Eingabevariablen sind erforderlich, d. h., das Modul hat keinen Standardwert dafür. Sie müssen einen Wert festlegen, damit Terraform korrekt ausgeführt wird.
Prüfen Sie im Modulblock "test-vpc-module"
die Eingabevariablen, die Sie festlegen. Diese sind in der Terraform Registry dokumentiert. Die erforderlichen Eingaben für dieses Modul lauten:
network_name
: Der Name des Netzwerks, das erstellt wirdproject_id
: Die ID des Projekts, in dem die VPC erstellt wirdsubnets
: Die Liste der Subnetze, die erstellt werdenDamit Sie Module verwenden können, müssen Sie in der Regel Eingabevariablen an die Modulkonfiguration übergeben. Die Konfiguration, die ein Modul aufruft, muss die Eingabewerte festlegen, die als Argumente an den Modulblock übergeben werden. Abgesehen von source
und version
legen die meisten Argumente für einen Modulblock Variablenwerte fest.
Auf der Terraform Registry-Seite für das „network“-Modul von Google Cloud werden im Tab „Inputs“ (Eingaben) alle Eingabevariablen beschrieben, die dieses Modul unterstützt.
Der Einsatz von Eingabevariablen in Modulen ähnelt dem von Variablen in anderen Terraform-Konfigurationen. Eine gängige Vorgehensweise ist zu überlegen, welche Moduleingabevariablen Sie in Zukunft möglicherweise ändern möchten, und entsprechende Variablen in der Datei variables.tf
der Konfiguration mit sinnvollen Standardwerten zu erstellen. Diese Variablen können dann als Argumente an den Modulblock übergeben werden.
Öffnen Sie im Editor im selben Verzeichnis die Datei variables.tf
.
Ersetzen Sie die Variable project_id
durch die Ausgabe des vorherigen Befehls. Dabei müssen Sie sich an das unten angegebene Format halten und den default
-Wert der Variablen festlegen:
network_name
in die Datei variables.tf
ein. Sie können den Namen example-vpc
oder einen beliebigen anderen verwenden. Dabei müssen Sie sich an das unten angegebene Format halten und den default
-Wert der Variablen festlegen:main.tf
den Parameter network_name
, um die Variable zu verwenden, die Sie gerade definiert haben, indem Sie den Wert auf var.network_name
setzen.main.tf
die Subnetzregionen in den Zeilen 35, 40 und 47 von us‑west1
in Module haben auch Ausgabewerte, die im Modul mit dem Stichwort output
definiert werden. Mithilfe von module.<MODULE NAME>.<OUTPUT NAME>
können Sie darauf zugreifen. Modulausgaben werden in der Terraform Registry im Tab Outputs
(Ausgaben) aufgeführt.
Modulausgaben werden in der Regel entweder an andere Teile der Konfiguration übergeben oder als Ausgaben im Stammmodul definiert. In diesem Lab lernen Sie beide Verwendungsmöglichkeiten kennen.
outputs.tf
im Verzeichnis Ihrer Konfiguration. Prüfen Sie, ob die Datei Folgendes enthält:simple_project
:Sehr gut. Sie haben Ihr erstes Modul verwendet. Die Ausgabe Ihrer Konfiguration sollte so aussehen:
Wenn Sie ein neues Modul zum ersten Mal verwenden, müssen Sie entweder terraform init
oder terraform get
ausführen, um das Modul zu installieren. Wird einer dieser Befehle ausgeführt, installiert Terraform neue Module im Verzeichnis .terraform/modules
im Arbeitsverzeichnis Ihrer Konfiguration. Für lokale Module erstellt Terraform einen Symlink zum Verzeichnis des Moduls. Aus diesem Grund sind Änderungen an lokalen Modulen sofort wirksam, ohne dass Sie terraform get
erneut ausführen müssen.
Jetzt wissen Sie, wie Module aus der Terraform Registry verwendet werden, wie Sie diese Module mit Eingabevariablen konfigurieren und wie Sie Ausgabewerte aus diesen Modulen erhalten.
Beantworten Sie den Prompt mit yes
.
Terraform löscht die von Ihnen erstellte Infrastruktur.
Löschen Sie anschließend auch den Ordner terraform-google-network
.
Klicken Sie auf Fortschritt prüfen.
In der letzten Aufgabe haben Sie ein Modul aus der Terraform Registry verwendet, um ein VPC‑Netzwerk in Google Cloud zu erstellen. Vorhandene Terraform-Module korrekt einzusetzen, ist eine wichtige Fähigkeit, aber jede Terraform-Fachkraft sollte auch wissen, wie Module erstellt werden. Sie sollten jede Terraform-Konfiguration unter der Annahme erstellen, dass sie als Modul verwendet wird. So werden Ihre Konfigurationen flexibel, wiederverwendbar und zusammensetzbar.
Wie Sie wahrscheinlich bereits wissen, behandelt Terraform jede Konfiguration als Modul. Wenn Sie terraform
-Befehle ausführen oder Terraform Cloud bzw. Terraform Enterprise nutzen, um Terraform remote auszuführen, fungiert das Zielverzeichnis, das die Terraform-Konfiguration enthält, als Stammmodul.
In dieser Aufgabe erstellen Sie ein Modul zum Verwalten von Cloud Storage-Buckets für das Hosten statischer Websites.
Terraform behandelt lokale Verzeichnisse, auf die im source
-Argument eines module
-Blocks verwiesen wird, als Modul. Eine typische Dateistruktur eines neuen Moduls sieht so aus:
.tf
‑Datei erstellen oder eine beliebige andere Dateistruktur verwenden.
Jede dieser Dateien dient einem bestimmten Zweck:
LICENSE
enthält die Lizenz, unter der Ihr Modul bereitgestellt wird. Wenn Sie das Modul freigeben, finden andere Nutzer in der LICENSE-Datei die Bedingungen, zu der es verfügbar gemacht wurde. Terraform verwendet diese Datei nicht.README.md
enthält eine Dokumentation im Markdown-Format, in der die Nutzung des Moduls beschrieben wird. Terraform verwendet diese Datei nicht, aber in Diensten wie Terraform Registry und GitHub wird ihr Inhalt Besuchern der Terraform Registry‑ oder GitHub-Seite des Moduls angezeigt.main.tf
enthält die wichtigsten Konfigurationen des Moduls. Sie können auch noch weitere Konfigurationsdateien erstellen und sie so organisieren, wie es zu Ihrem Projekt passt.variables.tf
enthält die Variablendefinitionen für das Modul. Wenn das Modul von anderen Nutzern verwendet wird, werden die Variablen im Modulblock als Argumente konfiguriert. Weil alle Terraform-Werte definiert sein müssen, werden alle Variablen, die keinen Standardwert haben, erforderliche Argumente. Eine Variable mit einem Standardwert kann aber auch als Modulargument bereitgestellt werden, wodurch der Standardwert überschrieben wird.outputs.tf
enthält die Ausgabedefinitionen für das Modul. Modulausgaben werden für die Konfiguration verfügbar gemacht, die das Modul verwendet. Sie dienen häufig dazu, Informationen zu den Teilen der Infrastruktur, die durch das Modul definiert sind, an andere Teile der Konfiguration zu übergeben.Achten Sie darauf, diese Dateien nicht als Teil des Moduls bereitzustellen:
terraform.tfstate
und terraform.tfstate.backup
enthalten Informationen zum Terraform-Zustand. Damit verfolgt Terraform die Beziehung zwischen der Konfiguration und der dadurch bereitgestellten Infrastruktur..terraform
enthält die Module und Plug‑ins zum Bereitstellen der Infrastruktur. Diese Dateien beziehen sich auf eine einzelne Terraform-Instanz beim Bereitstellen von Infrastruktur, nicht auf die Konfiguration der Infrastruktur, die in .tf
‑Dateien definiert ist.*.tfvars
‑Dateien müssen nicht zusammen mit dem Modul bereitgestellt werden, außer Sie verwenden es auch als eigenständige Terraform-Konfiguration, denn Moduleingabevariablen werden für den Modulblock in der Konfiguration mithilfe von Argumenten festgelegt.Wechseln Sie ins Basisverzeichnis und erstellen Sie ein Stammmodul, indem Sie eine neue main.tf
‑Konfigurationsdatei anlegen. Erstellen Sie als Nächstes ein Verzeichnis namens modules, das einen Ordner mit der Bezeichnung gcs-static-website-bucket
enthält. Sie arbeiten im Verzeichnis gcs-static-website-bucket
mit drei Terraform-Konfigurationsdateien: website.tf
, variables.tf
und outputs.tf
.
gcs-static-website-bucket
den folgenden Befehl aus, um die Datei README.md
mit diesem Inhalt zu erstellen:LICENSE
mit folgendem Inhalt:Die Verzeichnisstruktur Ihres Moduls sollte nun so aussehen:
website.tf
im Verzeichnis modules/gcs-static-website-bucket
hinzu:Die Dokumentation des Anbieters finden Sie bei GitHub.
variables.tf
im Modul auf und fügen Sie folgenden Code hinzu:outputs.tf
eine Ausgabe zum Modul hinzu:Wie Variablen haben auch Ausgaben in Modulen dieselbe Funktion wie im Stammmodul, aber der Zugriff erfolgt auf andere Weise. Auf die Ausgaben eines Moduls können Sie als schreibgeschützte Attribute im Modulobjekt zugreifen, das in der Konfiguration verfügbar ist, die das Modul aufruft.
main.tf
im Stammverzeichnis zurück und fügen Sie einen Verweis auf das neue Modul hinzu:outputs.tf
für das Stammmodul:outputs.tf
den folgenden Code hinzu:variables.tf
:variables.tf
den folgenden Code hinzu. Setzen Sie die Variablen project_id
und name
standardmäßig auf die Projekt-ID Wenn Sie einer Konfiguration ein neues Modul hinzufügen, muss Terraform dieses erst installieren, bevor es verwendet werden kann. Mit den Befehlen terraform get
und terraform init
werden Module installiert und aktualisiert. Durch den Befehl terraform init
werden außerdem Backends initialisiert und Plug‑ins installiert.
Sie haben jetzt ein eigenes Modul konfiguriert und es verwendet, um eine statische Website zu erstellen. Vielleicht möchten Sie die statische Website besuchen. Im Moment ist der Bucket leer, daher ist auf der Website nichts zu sehen. Sie müssen Objekte in den Bucket hochladen, um die Website mit Inhalten zu füllen. Sie können den Inhalt des Verzeichnisses www
aus dem GitHub-Repository hochladen.
YOUR-BUCKET-NAME
durch den Namen Ihres Speicher-Buckets:https://storage.cloud.google.com/YOUR-BUCKET-NAME/index.html
auf und ersetzen Sie dabei YOUR-BUCKET-NAME
durch den Namen Ihres Speicher-Buckets.Ihnen sollte eine einfache HTML-Webseite angezeigt werden, auf der Nothing to see here steht.
Klicken Sie auf Fortschritt prüfen.
Zum Schluss bereinigen Sie das Projekt, indem Sie die erstellte Infrastruktur wieder löschen.
Nachdem Sie den Prompt mit yes
beantwortet haben, löscht Terraform alle Ressourcen, die Sie im Laufe dieses Labs erstellt haben.
In diesem Lab haben Sie die Grundlagen von Terraform-Modulen kennengelernt und erfahren, wie Sie ein vorhandenes Modul aus der Registry verwenden. Dann haben Sie ein eigenes Modul für eine statische Website erstellt, die in einem Cloud Storage-Bucket gehostet wird. Dabei haben Sie Eingaben, Ausgaben und Variablen für die Konfigurationsdateien definiert und die Best Practices für das Erstellen von Modulen kennengelernt.
Unter diesen Links finden Sie weitere praxisorientierte Übungen mit Terraform:
In unseren Schulungen erfahren Sie alles zum optimalen Einsatz unserer Google Cloud-Technologien und können sich entsprechend zertifizieren lassen. Unsere Kurse vermitteln technische Fähigkeiten und Best Practices, damit Sie möglichst schnell mit Google Cloud loslegen und Ihr Wissen fortlaufend erweitern können. Wir bieten On-Demand-, Präsenz- und virtuelle Schulungen für Anfänger wie Fortgeschrittene an, die Sie individuell in Ihrem eigenen Zeitplan absolvieren können. Mit unseren Zertifizierungen weisen Sie nach, dass Sie Experte im Bereich Google Cloud-Technologien sind.
Anleitung zuletzt am 26. Januar 2024 aktualisiert
Lab zuletzt am 11. Dezember 2023 getestet
© 2025 Google LLC. Alle Rechte vorbehalten. Google und das Google-Logo sind Marken von Google LLC. Alle anderen Unternehmens- und Produktnamen können Marken der jeweils mit ihnen verbundenen Unternehmen sein.
Diese Inhalte sind derzeit nicht verfügbar
Bei Verfügbarkeit des Labs benachrichtigen wir Sie per E-Mail
Sehr gut!
Bei Verfügbarkeit kontaktieren wir Sie per E-Mail
One lab at a time
Confirm to end all existing labs and start this one