Adobe Cloud Manager facilita la creazione del codice e le distribuzioni in AEM as a Cloud Service. Possono verificarsi errori durante le fasi del processo di compilazione, che richiedono un'azione per risolverli. Questa guida illustra come comprendere gli errori comuni in nell’implementazione e come affrontarli nel modo migliore.
Il passaggio di convalida assicura semplicemente la validità delle configurazioni di base di Cloud Manager. Gli errori comuni di convalida includono:
La fase Build e Unit Testing esegue una build Maven (mvn clean package
) del progetto estratto dal ramo Git configurato della pipeline.
Gli errori identificati in questa fase devono essere riproducibili nella creazione locale del progetto, con le seguenti eccezioni:
pom.xml
. Tieni presente che, includere gli archivi Maven è sconsigliato in quanto aumenta i tempi di creazione..sleep(..)
nel codice del test.La scansione del codice esegue l’analisi del codice statico utilizzando una combinazione di best practice specifiche per Java e AEM.
Se nel codice sono presenti vulnerabilità di sicurezza critiche, l’analisi del codice genera un errore di build. Le violazioni meno importanti possono essere ignorate, ma si consiglia di correggerle. La scansione del codice non è perfetta e può causare falsi positivi.
Per risolvere i problemi di scansione del codice, scarica il rapporto in formato CSV fornito da Cloud Manager tramite Dettagli del download e rivedere eventuali voci.
Per ulteriori dettagli, consulta Regole specifiche per l’AEM, consulta la documentazione di Cloud Manager. regole di scansione del codice specifiche per AEM personalizzate.
L’immagine della build è responsabile della combinazione degli artefatti di codice creati nel passaggio Build e Unit Testing con la versione dell’AEM, per formare un singolo artefatto distribuibile.
Anche se durante la generazione e il testing di unità vengono riscontrati problemi di compilazione e compilazione del codice, possono esserci problemi di configurazione o strutturali identificati quando si tenta di combinare l’artefatto di compilazione personalizzato con la versione dell’AEM.
Quando più configurazioni OSGi si risolvono tramite la modalità di esecuzione per l’ambiente AEM di destinazione, il passaggio Genera immagine non riesce e viene visualizzato il messaggio di errore:
[ERROR] Unable to convert content-package [/tmp/packages/enduser.all-1.0-SNAPSHOT.zip]:
Configuration 'com.example.ExampleComponent' already defined in Feature Model 'com.example.groupId:example.all:slingosgifeature:xxxxx:X.X',
set the 'mergeConfigurations' flag to 'true' if you want to merge multiple configurations with same PID
filevault-package-maven-plugin
configurazione imposta su <cloudManagerTarget>none</cloudManagerTarget>
.Gli script Repoinit definiscono il contenuto della linea di base, gli utenti, gli ACL, ecc. In AEM as a Cloud Service, gli script di repoinit vengono applicati durante la generazione dell’immagine, ma nell’avvio rapido locale dell’SDK dell’AEM vengono applicati quando la configurazione della factory di repoinit OSGi è attivata. Per questo motivo, gli script Repoinit potrebbero non riuscire (con la registrazione) nell’avvio rapido locale dell’SDK dell’AEM, ma il passaggio Build Image non riesce, interrompendo la distribuzione.
Gli script Repoinit definiscono il contenuto della linea di base, gli utenti, gli ACL, ecc. Nel quickstart locale dell'SDK dell'AEM, gli script di repoinit vengono applicati quando la configurazione di fabbrica OSGi di repoinit è attivata, o in altre parole, dopo che l'archivio è attivo e potrebbe aver subito modifiche al contenuto direttamente o tramite pacchetti di contenuti. In AEM as a Cloud Service, gli script repoinit vengono applicati durante la generazione dell’immagine in un archivio che potrebbe non contenere contenuto da cui dipende lo script repoinit.
Questo problema riguarda solo gli ambienti non di produzione che NON eseguono l’aggiornamento automatico all’ultima versione dell’AEM.
AEM as a Cloud Service include automaticamente la versione più recente dei Componenti core in ogni versione AEM, ovvero dopo che a un ambiente AEM as a Cloud Service viene automaticamente o manualmente aggiornata la versione più recente dei Componenti core implementata.
È possibile che il passaggio Genera immagine non riesca quando:
core
Progetto (bundle OSGi)Per evitare questo errore, ogni volta che è disponibile un aggiornamento dell’ambiente as a Cloud Service AEM, includi l’aggiornamento come parte della build/distribuzione successiva e assicurati sempre che gli aggiornamenti vengano inclusi dopo l’incremento della versione dei Componenti core nella base di codice dell’applicazione.
Sintomi:
Il passaggio Genera immagine non riesce e viene visualizzato un messaggio di ERRORE che segnala che
com.adobe.cq.wcm.core.components...
impossibile importare i pacchetti in intervalli di versioni specifici da core
progetto.
[ERROR] Bundle com.example.core:0.0.3-SNAPSHOT is importing package(s) Package com.adobe.cq.wcm.core.components.models;version=[12.13,13) in start level 20 but no bundle is exporting these for that start level in the required version range.
[ERROR] Analyser detected errors on feature 'com.adobe.granite:aem-ethos-app-image:slingosgifeature:aem-runtime-application-publish-dev:1.0.0-SNAPSHOT'. See log output for error messages.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
Causa: Il bundle OSGi dell’applicazione (definito nel core
project) importa le classi Java dalla dipendenza principale dei Componenti core, a un livello di versione diverso da quello implementato in AEM as a Cloud Service.
Risoluzione:
Se gli approcci di risoluzione dei problemi sopra descritti non risolvono il problema, crea un caso di supporto Adobe tramite:
Adobe Admin Console > Scheda Supporto > Crea caso
Se sei membro di più organizzazioni di Adobe, accertati che l’organizzazione di Adobe con pipeline non riuscita sia selezionata nel selettore Organizzazioni di Adobe prima di creare il caso.
Il passaggio Distribuisci su è responsabile dell’esecuzione dell’artefatto di codice generato nell’immagine di creazione, avvia i nuovi servizi Author e Publish di AEM e, una volta completato, rimuove tutti i vecchi servizi Author e Publish di AEM. Anche in questo passaggio vengono installati e aggiornati pacchetti e indici di contenuto variabile.
Acquisisci familiarità con Registri AEM as a Cloud Service prima di eseguire il debug del passaggio Distribuisci in. Il aemerror
Il registro contiene informazioni sull’avvio e l’arresto dei pod che possono essere utili per la distribuzione in caso di problemi. Tieni presente che il registro disponibile tramite il pulsante Scarica registro nel passaggio Distribuisci in di Cloud Manager non è il aemerror
e non contiene informazioni dettagliate relative all’avvio delle applicazioni.
I tre motivi principali per cui la distribuzione al passaggio potrebbe non riuscire:
Il codice in esecuzione durante l’avvio del servizio AEM appena implementato richiede così tanto tempo che Cloud Manager scade prima che la distribuzione possa essere completata. In questi casi, la distribuzione potrebbe avere esito positivo anche se è stato segnalato lo stato di Cloud Manager Non riuscito.
aemerror
registra per i servizi AEM Author e Publish intorno al momento dell’errore (tempo di registrazione in GMT), come mostrato da Cloud Manager, e cerca i messaggi di registro che indicano eventuali processi di esecuzione del registro personalizzati.La maggior parte del codice e delle violazioni della configurazione vengono rilevate in una fase precedente della build, tuttavia il codice personalizzato o la configurazione possono essere incompatibili con l’AEM as a Cloud Service e non vengono rilevate finché non vengono eseguite nel contenitore.
aemerror
registra per i servizi di authoring e pubblicazione di AEM in qualsiasi momento (tempo di registrazione in GMT) dell’errore, come mostrato da Cloud Manager.
/var
è mutabile e contiene diversi contenuti transitori e di runtime. Inclusione /var
in pacchetti di contenuti (ad es. ui.content
) implementato tramite Cloud Manager potrebbe causare un errore del passaggio di distribuzione.
Questo problema è difficile da identificare in quanto non si verifica un errore nella distribuzione iniziale, ma solo nelle distribuzioni successive. I sintomi più evidenti includono:
Per convalidare questo problema, la causa è il comportamento errato:
Determinando che almeno un pacchetto di contenuti che fa parte della distribuzione, scrive in /var
.
Verifica che la coda di distribuzione primaria (in grassetto) sia bloccata in:
AEM Author > Strumenti > Implementazione > Distribuzione
In caso di mancata distribuzione successiva, scarica i registri di "Distribuisci in" di Cloud Manager utilizzando il pulsante Scarica registro:
… e verificare che trascorrano circa 60 minuti tra le istruzioni di registro:
2020-01-01T01:01:02+0000 Begin deployment in aem-program-x-env-y-dev [CorrelationId: 1234]
… e …
2020-01-01T02:04:10+0000 Failed deployment in aem-program-x-env-y-dev
Tieni presente che questo registro non conterrà questi indicatori sulle distribuzioni iniziali che riportano come riuscite, ma solo sulle distribuzioni successive con errori.
/var
in AEM Publish. In questo modo la distribuzione del pacchetto di contenuti al servizio di pubblicazione AEM non riesce./var
risorse non necessarie rimuovere le risorse in /var
da pacchetti di contenuti distribuiti come parte dell’applicazione./var
risorse sono necessarie, definisci le strutture dei nodi utilizzando repoinit. Gli script Repoinit possono essere indirizzati ad AEM Author, AEM Publish o a entrambi, tramite le modalità di esecuzione OSGi./var
Le risorse sono necessarie solo per l’autore dell’AEM e non possono essere ragionevolmente modellate utilizzando repoinit, spostali in un pacchetto di contenuti discreto, installato solo in AEM Author da incorporamento in all
pacchetto in una cartella runmode di AEM Author (<target>/apps/example-packages/content/install.author</target>
).sling-distribution-importer
utente del servizio come descritto ADOBE KB.Se gli approcci di risoluzione dei problemi sopra descritti non risolvono il problema, crea un caso di supporto Adobe tramite:
Adobe Admin Console > Scheda Supporto > Crea caso
Se sei membro di più organizzazioni di Adobe, accertati che l’organizzazione di Adobe con pipeline non riuscita sia selezionata nel selettore Organizzazioni di Adobe prima di creare il caso.