AEM-Konfigurationen dienen zur Verwaltung von Einstellungen in AEM und als Arbeitsbereiche.
Eine Konfiguration kann aus zwei verschiedenen Blickwinkeln betrachtet werden.
Zusammenfassend: Aus Sicht eines Administrators sind Konfigurationen das Erstellen von Arbeitsbereichen zum Verwalten von Einstellungen in AEM, während der Entwickler verstehen sollte, wie AEM diese Konfigurationen im Repository verwendet und verwaltet.
Unabhängig von Ihrem Blickwinkel dienen Konfigurationen in AEM zwei Hauptzwecken:
Sowohl der AEM-Administrator als auch die Autoren können Konfigurationen als Arbeitsbereiche betrachten. Diese Arbeitsbereiche können verwendet werden, um Gruppen von Einstellungen sowie deren zugehörigen Inhalt für organisatorische Zwecke zu zusammenzufassen, indem Zugriffsrechte für diese Funktionen implementiert werden.
Konfigurationen können für viele verschiedene Funktionen in AEM erstellt werden.
Ein Administrator kann beispielsweise zwei Konfigurationen für bearbeitbare Vorlagen erstellen.
Der Administrator kann dann allgemeine Seitenvorlagen mit der Konfiguration „WKND-General“ und magazinspezifische Vorlagen unter „WKND-Magazin“ erstellen.
Der Administrator kann dann „WKND-General“ mit allen Inhalten der WKND-Site verknüpfen. Die Konfiguration „WKND-Magazin“ würde jedoch nur mit der Magazin-Site verknüpft.
Dies geschieht folgendermaßen:
Ähnliche Setups sind nicht nur für bearbeitbare Vorlagen möglich, sondern auch für Cloud-Konfigurationen, ContextHub-Segmente und Inhaltsfragmentmodelle.
Mit dem Konfigurations-Browser kann ein Administrator auf einfache Weise Zugriffsrechte für Konfigurationen in AEM erstellen, verwalten und konfigurieren.
Es ist nur möglich, Konfigurationen mit dem Konfigurations-Browser zu erstellen, wenn der Benutzer über admin
-Rechte verfügt. admin
-Rechte sind auch erforderlich, um der Konfiguration Zugriffsrechte zuzuweisen oder eine Konfiguration anderweitig zu ändern.
Es ist sehr einfach, mithilfe des Konfigurations-Browsers eine neue Konfiguration in AEM zu erstellen.
Melden Sie sich bei AEM as a Cloud Service an und wählen Sie im Hauptmenü Tools > Allgemein > Konfigurationsbrowser aus.
Tippen oder klicken Sie auf Erstellen.
Geben Sie einen Titel und einen Namen für Ihre Konfiguration an.
Markieren Sie die Art der Konfigurationen, die Sie zulassen möchten.
Tippen oder klicken Sie auf Erstellen.
Konfigurationen können verschachtelt sein.
Wenn Sie Konfigurationen als Arbeitsbereiche betrachten, können Zugriffsrechte für diese Konfigurationen festgelegt werden, um zu erzwingen, wer auf diese Arbeitsbereiche zugreifen darf und wer nicht.
Es ist nicht möglich, die Auswahl einer Funktion aufzuheben, nachdem die Konfiguration erstellt wurde.
Als Entwickler ist es wichtig zu wissen, wie AEM as a Cloud Service mit Konfigurationen funktioniert und wie eine Konfigurationsauflösung verarbeitet wird.
Obwohl der Administrator und die Benutzer Konfigurationen möglicherweise als Arbeitsplätze zum Verwalten unterschiedlicher Einstellungen und Inhalte betrachten, ist es wichtig zu verstehen, dass Konfigurationen und Inhalte von AEM separat im Repository gespeichert und verwaltet werden.
/content
nimmt alle Inhalte auf./conf
nimmt alle Konfigurationen auf.Inhalt referenziert seine zugehörige Konfiguration über eine cq:conf
-Eigenschaft. AEM führt basierend auf dem Inhalt und seiner Kontexteigenschaft cq:conf
eine Suche durch, um die entsprechende Konfiguration zu finden.
Nehmen wir für dieses Beispiel an, Sie haben Programm-Code, der an DAM-Einstellungen interessiert ist.
Conf conf = resource.adaptTo(Conf.class);
ValueMap imageServerSettings = conf.getItem("dam/imageserver");
String bgkcolor = imageServerSettings.get("bgkcolor", "FFFFFF");
Der Ausgangspunkt aller Konfigurationsabfragen ist eine Inhaltsressource, üblicherweise unter /content
. Dies kann eine Seite, eine Komponente innerhalb einer Seite, ein Asset oder ein DAM-Ordner sein. Dies ist der eigentliche Inhalt, für den wir nach der richtigen Konfiguration suchen, die in diesem Zusammenhang gilt.
Mit dem Conf
-Objekt können wir nun das spezifische Konfigurationselement abrufen, an dem wir interessiert sind. In diesem Fall ist es dam/imageserver
, was eine Sammlung von Einstellungen im Zusammenhang mit imageserver
ist. Der Aufruf getItem
gibt ein ValueMap
zurück. Anschließend lesen wir eine bgkcolor
-Zeichenfolgeneigenschaft aus und geben den Standardwert „FFFFFF“ an, falls die Eigenschaft (oder das gesamte Konfigurationselement) nicht vorhanden ist.
Sehen wir uns nun den entsprechenden JCR-Inhalt an:
/content/dam/wknd
+ jcr:content
- cq:conf = "/conf/wknd"
+ image.png [dam:Asset]
/conf/wknd
+ settings
+ dam
+ imageserver [cq:Page]
+ jcr:content
- bgkcolor = "FF0000"
In diesem Beispiel gehen wir von einem WKND-spezifischen DAM-Ordner und einer entsprechenden Konfiguration aus. Ausgehende von diesem Ordner /content/dam/wknd
wird eine Zeichenfolgeneigenschaft mit dem Namen cq:conf
angezeigt, die auf die Konfiguration verweist, die für den Unterbaum gelten soll. Die Eigenschaft wird normalerweise für den jcr:content
eines Asset-Ordners oder einer Asset-Seite eingestellt. Diese conf
-Links sind explizit, sodass es einfach ist, ihnen zu folgen, indem Sie sich den Inhalt in CRXDE ansehen.
Wenn wir in /conf
springen, folgen wir dem Verweis und sehen, dass es einen /conf/wknd
-Knoten gibt. Dies ist eine Konfiguration. Beachten Sie, dass die Suche für den Programm-Code vollständig transparent ist. Der Beispiel-Code hat nie eine dedizierte Referenz darauf, sie ist hinter dem Conf
-Objekt versteckt. Welche Konfiguration gilt, wird vollständig durch den JCR-Inhalt gesteuert.
Wir sehen, dass die Konfiguration einen settings
-Knoten mit festem Namen enthält, der die tatsächlichen Elemente enthält, einschließlich des in unserem Fall benötigten dam/imageserver
. Ein solches Element kann als „Einstellungsdokument“ betrachtet werden und wird normalerweise durch eine cq:Page
dargestellt, das einen jcr:content
enthält, der den tatsächlichen Inhalt enthält.
Schließlich sehen wir die Eigenschaft bgkcolor
, die unser Beispiel-Code benötigt. Die ValueMap
, die wir von getItem
erhalten, basiert auf dem jcr:content
-Knoten der Seite.
Das grundlegende Beispiel oben zeigte eine einzelne Konfiguration. Es gibt jedoch viele Fälle, in denen Sie unterschiedliche Konfigurationen wünschen, z. B. eine globale Standardkonfiguration, eine andere für jede Marke und möglicherweise eine bestimmte für Ihre Unterprojekte.
Um dies zu unterstützen, verfügt die Konfigurationssuche in AEM über einen Vererbungs- und Ausweichmechanismus in der folgenden Reihenfolge:
/conf/<siteconfig>/<parentconfig>/<myconfig>
cq:conf
irgendwo in /content
verwiesen wird/conf/<siteconfig>/<parentconfig>
/conf/<siteconfig>
/conf/global
admin
-Rolle festgelegt/apps
/libs
Die Konfigurationen in AEM basieren auf kontextabhängigen Sling-Konfigurationen. Die Sling-Bundles bieten eine Dienst-API, mit der kontextabhängige Konfigurationen abgerufen werden können. Kontextabhängige Konfigurationen sind Konfigurationen, die sich auf eine Inhaltsressource oder einen Ressourcenbaum beziehen, wie im vorherigen Beispiel beschrieben wurde.
Weitere Informationen zu kontextabhängigen Konfigurationen, Beispiele und deren Verwendung finden Sie in der Sling-Dokumentation.
Zu Debuggings- und Testzwecken gibt es eine ConfMgr-Web-Konsole unter https://<host>:<port>/system/console/conf
, die Konfigurationen für einen bestimmten Pfad/ein bestimmtes Element anzeigen kann.
Geben Sie einfach Folgendes an:
Klicken Sie auf Auflösen, um zu sehen, welche Konfigurationen aufgelöst werden, und um Beispiel-Code zu erhalten, mit dem diese Konfigurationen aufgelöst werden.
Zu Debuggings- und Testzwecken gibt es eine Web-Konsole für kontextabhängige Konfigurationen unter https://<host>:<port>/system/console/slingcaconfig
, mit der Sie kontextabhängige Konfigurationen im Repository abfragen und ihre Eigenschaften anzeigen können.
Geben Sie einfach Folgendes an:
Klicken Sie auf Auflösen, um die zugehörigen Kontextpfade und Eigenschaften für die ausgewählte Konfiguration abzurufen.