Die Namespaces API in Google App Engine erleichtert die Aufgliederung Ihrer Google App Engine-Daten. Diese API wird über die appengine.Namespace
-Funktion implementiert und ist in bestimmten namespace-fähigen APIs enthalten.
Wenn Sie im Namespace Manager einen Namespace festlegen, erhalten diese APIs den aktuellen Namespace und verwenden ihn global. Sie können einen Namespace explizit lokal deklarieren, dabei muss jedoch mit Vorsicht vorgegangen werden, da unbeabsichtigt Datenlecks und andere Programmfehler entstehen können. Jede App Engine-Anfrage kann auf jeden Namespace zugreifen und überlässt es dabei der Anwendung, eine Zugriffssteuerungsrichtlinie für Namespaces zu erzwingen.
Sie können die Namespaces API zum Erstellen verschiedenster Anwendungen verwenden. Eine der interessantesten Einsatzmöglichkeiten dieser API sind mehrinstanzenfähige Anwendungen, die im Folgenden beschrieben werden.
Mehrinstanzenfähigkeit
Mehrinstanzenfähigkeit bezeichnet eine Softwarearchitektur, in der eine Instanz einer Anwendung, die auf einem Remoteserver läuft, für viele Clientorganisationen (auch als Mandanten bezeichnet) bereitgestellt wird.
Durch die Verwendung einer mehrinstanzenfähigen Architektur wird die Verwaltung und Bereitstellung von Mandanten vereinfacht. Sie können so für eine optimierte, angepasste Nutzerumgebung sorgen und außerdem verschiedene Datensilos unter einem einzelnen Datenbankschema zusammenführen. Dadurch werden Ihre Anwendungen skalierbarer und bei der Skalierung kosteneffizienter. Es wird einfacher, Daten aufzugliedern und Analysen für alle Mandanten durchzuführen, da alle Mandanten dasselbe Datenbankschema nutzen. Für die verschiedenen Nutzergruppen werden benutzerdefinierte Inhalte angezeigt, die in eine effizientere Anwendung eingebunden sind.
Mehrinstanzenfähige Anwendungen mit der Namespaces API erstellen
Durch die Verwendung der Namespaces API können Sie Daten für alle Mandanten problemlos aufgliedern, indem Sie einfach für jeden Mandanten einen eindeutigen Namespace-String festlegen. Sie legen den Namespace für jeden Mandanten global mithilfe des Namespace Managers fest (anstatt ihn explizit für einzelne Anfragen festzulegen). Die namespace-fähigen APIs verwenden standardmäßig immer diesen aktuellen Namespace.
Die Namespaces API ist in Google Workspace eingebunden, sodass Sie Ihre Google Workspace-Domain als aktuellen Namespace verwenden können. Da Sie mit Google Workspace Ihre Anwendung in jeder beliebigen eigenen Domain bereitstellen können, können Sie problemlos eindeutige Namespaces für alle mit Ihrem Google Workspace-Konto verknüpften Domains festlegen.
Beim Erstellen mehrinstanzenfähiger Anwendungen müssen Sie verhindern, dass Daten die jeweiligen Namespaces verlassen. Weitere Informationen finden Sie unter Datenlecks vermeiden.
App Engine APIs mit Namespaces
App Engine unterstützt derzeit in den folgenden APIs Namespaces:
Beispielprojekte mit Namespaces
Es stehen zwei Gästebuch-Beispielanwendungen zur Verfügung, die Namespaces verwenden:
- Python App Engine: appengine-multitenancy – eine Namespace-fähige Gästebuch-Beispielanwendung.
- Java App Engine: appengine-gwtguestbook-namespaces-java – eine Namespace-fähige Gästebuch-Beispielanwendung, die GWT verwendet.
Andere Verwendungen für die Namespaces API
Neben der Aktivierung von Mehrinstanzenfähigkeit für App Engine bietet die Namespaces API noch viele andere Einsatzmöglichkeiten, wie zum Beispiel:
- Aufgliedern der Nutzerinformationen
- Trennen der Verwaltungsdaten von den Anwendungsdaten
- Erstellen separater Datenspeicherinstanzen für Tests und Produktion
- Ausführen von mehreren Anwendungen auf einer einzigen App Engine-Instanz