Probleme beim Laden der OSGi-Konfiguration und bei der Vererbung in allen AEM-Cloud-Umgebungen
Adobe Experience Manager as a Cloud Service (AEMaaCS) verursacht OSGi-Konfigurationsprobleme, wenn Werte in allen Umgebungen fehlen, dupliziert oder inkonsistent sind. Dies geschieht aufgrund einer strikten, auf dem Ausführungsmodus basierenden Auflösung, einer Git-gesteuerten Bereitstellung und dem Laden der Konfiguration auf Pod-Ebene. Um das Problem zu beheben, korrigieren Sie die OSGi-Ordnerstruktur, überprüfen Sie die Ausführungsmodus-Benennung und stellen Sie Konfigurationen erneut bereit, um ein konsistentes Verhalten über alle Pods hinweg sicherzustellen.
Beschreibung description
Umgebung
- Adobe Experience Manager as a Cloud Service (AEMaaCS)
- Adobe Managed Services (AMS)
Problem/Symptome
- OSGi-Konfigurationswerte werden nach der Bereitstellung nicht mehr in der vDeveloper Console angezeigt.
- Es werden mehrere Instanzen derselben PID angezeigt, z. B.
com.day.cq.mailer.DefaultMailService, eine pro Pod. - Konfigurationen werden je nach Ausführungsmodus nur in der Autoreninstanz oder nur in der Veröffentlichungsinstanz geladen.
- Die Vorschauwerte stimmen nicht mit den Veröffentlichungswerten überein, obwohl sie standardmäßig erben.
- Die neue Developer Console-Benutzeroberfläche zeigt veraltete Werte an, während die klassische Ansicht die richtigen Werte anzeigt.
Grundursache
AEMaaCS löst OSGi-Konfigurationen aus Git mithilfe von strikten, auf dem Ausführungsmodus basierenden Ordnernamen unter dem erforderlichen Repository-Pfad auf. Fehlerhafte Ordner, falsche Ausführungsmodus-Namen oder tiefe Verschachtelungen verhindern die Konfigurationserkennung. Konfigurationen werden pro Pod über das Sling JCR-Installationsprogramm geladen und die Vorschau übernimmt Veröffentlichungswerte. Die neue Developer Console-Benutzeroberfläche zeigt möglicherweise veraltete Werte aufgrund einer bekannten Einschränkung an.
Lösung resolution
Führen Sie die folgenden Schritte aus, um das richtige Verhalten und die richtige Bereitstellung der OSGi-Konfiguration sicherzustellen:
- Navigieren Sie zum Git-Repository und stellen Sie sicher, dass OSGi-Konfigurationen unter
ui.config/src/main/content/jcr_root/apps/<project>/osgiconfiggespeichert werden. - Stellen Sie sicher, dass Konfigurationsordner dem richtigen Ausführungsmodus-Muster entsprechen, z. B.
config.publish,config.publish.stageoderconfig.author.dev. - Verschieben Sie alle tief verschachtelten Konfigurationsordner, z. B.
apps/project/test1/test2/config.authorin apps/<project>/osgiconfig/config.<runmode>, um die Erkennung sicherzustellen. - Identifizieren Sie die Zielumgebung und stellen Sie sicher, dass der spezifischste Ausführungsmodus angewendet wird, z. B.
config.publish.stageüberschreibtconfig.publish. - Korrigieren Sie alle nicht übereinstimmenden Ausführungsmodus-Namen, z. B.
config.stg.publiceinem gültigen Muster wieconfig.publish.stage. - Führen Sie die mit dem
ui.configverknüpfte Cloud Manager-Pipeline aus, um Konfigurationsänderungen bereitzustellen. - Überprüfen Sie die Konfigurationswerte in der klassischen Ansicht von Developer Console, da die neuere Benutzeroberfläche möglicherweise veraltete Daten anzeigt.
- Öffnen Sie die Konfigurationsansicht für Alle Autoren oder Alle Herausgeber und vergewissern Sie sich, dass die Werte pro Pod gruppiert angezeigt werden.
- Stellen Sie die Pipeline erneut bereit, wenn nur ein Pod aktualisierte Werte anzeigt, da eine temporäre Drift auf Pod-Ebene auftreten kann.
- Entfernen Sie alle
config.preview.*Ordner, damit die Vorschau die Werte von der Veröffentlichungsinstanz übernimmt. - Verwenden Sie Umgebungsvariablen, wobei der Service für die Vorschau festgelegt ist, wenn eine vorschauspezifische Differenzierung erforderlich ist.
- Entfernen Sie die
.cfg.jsonaus Git und stellen Sie die Pipeline erneut bereit, um eine Konfiguration zu löschen und auf die Standardeinstellung zurückzusetzen. - Fügen Sie
mode="replace"infilter.xmlhinzu, wenn die Konfiguration nach dem Löschen bestehen bleibt. - Stellen Sie sicher, dass Konfigurationsdateien nur erforderliche Eigenschaften enthalten, damit nicht angegebene Werte auf die Standardwerte zurückgesetzt werden.
- Überprüfen Sie, ob alle effektiven Konfigurationswerte in allen Pods in der Developer Console Classic-Ansicht korrekt angezeigt werden.
Wann eskaliert werden soll:
- Konfigurationswerte werden nach der Validierung der Ordnerstruktur und der erneuten Bereitstellung der Pipeline nicht angezeigt.
- Die Ausführungsmodus-Auflösung wendet die erwarteten Konfigurationswerte trotz korrekter Ordnernamen nicht an.
- Nur einige Pods spiegeln aktualisierte Konfigurationswerte nach mehreren Bereitstellungen wider.
- Die Vorschau erbt keine Veröffentlichungswerte, nachdem vorschauspezifische Konfigurationsordner entfernt wurden.
- Das Löschen von Konfigurationen wird nach dem Entfernen von Dateien und der erneuten Bereitstellung nicht wirksam.
- Das Sling-Installationsprogramm verarbeitet Konfigurationsressourcen nicht wie erwartet.