Adobe Cloud Manager facilita la creazione e l’implementazione del codice AEM as a Cloud Service. Possono verificarsi errori durante i passaggi del processo di compilazione, che richiedono un’azione per risolverli. Questa guida illustra gli errori comuni nell’implementazione e le modalità per affrontarli al meglio.
Il passaggio di convalida assicura semplicemente la validità delle configurazioni di base di Cloud Manager. Gli errori di convalida comuni 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 individuati in questa fase devono essere riproducibili nella creazione locale del progetto, con le seguenti eccezioni:
pom.xml
. Tieni presente che, l’inclusione degli archivi Maven è scoraggiata in quanto aumenta i tempi di creazione..sleep(..)
nel codice di prova.La scansione del codice esegue l’analisi del codice statico utilizzando una combinazione di procedure consigliate specifiche per Java e AEM.
La scansione del codice causa un errore di compilazione se nel codice sono presenti vulnerabilità di sicurezza critica. Le violazioni minori possono essere ignorate, ma si consiglia di correggerle. La scansione del codice è imperfetta e può causare falsi positivi.
Per risolvere i problemi di scansione del codice, scarica il rapporto in formato CSV fornito da Cloud Manager tramite il Dettagli di download e controlla tutte le voci.
Per ulteriori dettagli, consulta AEM regole specifiche, consulta la documentazione di Cloud Manager regole di scansione del codice specifiche AEM personalizzate.
L’immagine Build è responsabile della combinazione degli artefatti di codice generati nel passaggio Build & Unit Testing (Generazione e test di unità) con la versione AEM, per creare un singolo artefatto distribuibile.
Mentre durante il test Build & Unit vengono rilevati eventuali problemi di compilazione e compilazione del codice, possono verificarsi problemi di configurazione o di struttura durante il tentativo di combinare l'artefatto di build personalizzato con la versione AEM.
Quando più configurazioni OSGi vengono risolte tramite la modalità runmode per l'ambiente di AEM di destinazione, il passaggio Genera immagine non riesce e viene restituito l'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 impostato su <cloudManagerTarget>none</cloudManagerTarget>
.Gli script di reindirizzamento definiscono il contenuto di base, gli utenti, le ACL, ecc. In AEM as a Cloud Service, gli script di reindirizzamento vengono applicati durante la creazione dell’immagine, tuttavia AEM’avvio rapido locale dell’SDK vengono applicati quando viene attivata la configurazione di fabbrica del repoinit OSGi. Per questo motivo, gli script di Repoinit potrebbero avere esito negativo (con la registrazione) sull’avvio rapido locale AEM’SDK e causare un errore nel passaggio Genera immagine, arrestando la distribuzione.
Gli script di reindirizzamento definiscono il contenuto di base, gli utenti, le ACL, ecc. In AEM’avvio rapido locale dell’SDK, gli script di reindirizzamento vengono applicati quando viene attivata la configurazione di fabbrica OSGi di reindirizzamento, o in altre parole, dopo che l’archivio è attivo e possono aver subito modifiche di contenuto direttamente o tramite pacchetti di contenuto. In AEM as a Cloud Service, gli script di reindirizzamento vengono applicati durante la funzione Genera immagine rispetto a un archivio che potrebbe non contenere il contenuto da cui dipende lo script di repoinit.
Questo problema riguarda solo gli ambienti non di produzione che NON eseguono l'aggiornamento automatico alla versione più recente di AEM.
AEM as a Cloud Service include automaticamente la versione più recente dei componenti core in ogni versione di AEM, ovvero dopo che un ambiente as a Cloud Service AEM viene aggiornato automaticamente o manualmente, viene distribuita la versione più recente dei componenti core.
È 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 che gli aggiornamenti siano inclusi sempre dopo aver incrementato la versione dei componenti core nella base di codice dell’applicazione.
Sintomi:
Il passaggio Genera immagine non riesce con un messaggio ERROR che segnala che
com.adobe.cq.wcm.core.components...
impossibile importare i pacchetti in intervalli di versioni specifici dal 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
progetto) importa le classi Java dalla dipendenza di base dei componenti core, a un livello di versione diverso da quello distribuito a AEM as a Cloud Service.
Risoluzione:
Se gli approcci di risoluzione dei problemi sopra descritti non risolvono il problema, crea un caso di assistenza Adobe, tramite:
Adobe Admin Console > Scheda Supporto > Crea caso
Se sei membro di più organizzazioni di Adobe, assicurati che l’organizzazione di Adobe con pipeline non riuscita sia selezionata nel commutatore delle organizzazioni di Adobe prima di creare il caso.
Il passaggio Distribuisci a è responsabile dell’artefatto di codice generato in Genera immagine, avvia i nuovi servizi di authoring e pubblicazione AEM che lo utilizzano e, dopo il successo, rimuove tutti i vecchi servizi di authoring e pubblicazione AEM. Anche in questo passaggio vengono installati e aggiornati pacchetti di contenuto variabile e indici.
Acquisisci familiarità con AEM registri as a Cloud Service prima di eseguire il debug del passaggio Distribuisci a . La aemerror
Il registro contiene informazioni sull’avvio e lo spegnimento dei pod che possono essere pertinenti a Deploy to issues. Il registro disponibile tramite il pulsante Download Log nel passaggio Distribuzione a di Cloud Manager non è il aemerror
registra e non contiene informazioni dettagliate relative all'avvio delle applicazioni.
I tre motivi principali per cui il passaggio Distribuisci a potrebbe non riuscire:
Il codice in esecuzione durante l’avvio del servizio AEM appena implementato richiede così tanto tempo che Cloud Manager riceve un timeout prima del completamento della distribuzione. In questi casi, l’implementazione potrebbe avere successo, anche se lo stato di Cloud Manager segnalava Non riuscito.
aemerror
registra i servizi AEM Author e Publish intorno all’ora dell’errore (ora di accesso in GMT) come mostrato da Cloud Manager, e cerca i messaggi di registro che indicano eventuali processi di log personalizzati in esecuzione.La maggior parte delle violazioni del codice e della configurazione vengono rilevate in precedenza nella build, tuttavia è possibile che il codice personalizzato o la configurazione sia incompatibile con l’AEM as a Cloud Service e non venga rilevato finché non viene eseguito nel contenitore .
aemerror
registri dei servizi Author e Publish di AEM intorno all’ora (ora di accesso in GMT) dell’errore, come mostrato da Cloud Manager.
/var
è modificabile contenente una varietà di contenuti transitori e di runtime. Incluso /var
in pacchetti di contenuti (ad esempio ui.content
) implementata tramite Cloud Manager potrebbe causare il mancato funzionamento del passaggio Distribuzione .
Questo problema è difficile da identificare in quanto non si traduce in un errore nella distribuzione iniziale, solo nelle distribuzioni successive. I sintomi noti includono:
Per convalidare questo problema è la causa del comportamento non riuscito:
Determinando che almeno un pacchetto di contenuto 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 errore nella distribuzione successiva, scarica i registri "Distribuisci a" di Cloud Manager utilizzando il pulsante Download Log (Scarica registro):
… e verifica che ci siano circa 60 minuti tra le istruzioni di log:
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 hanno avuto esito positivo, ma solo sulle distribuzioni successive con errori.
/var
su AEM Publish. Questo causa un errore nella distribuzione del pacchetto di contenuti al servizio AEM Publish./var
le risorse non sono necessarie per rimuovere le risorse in /var
da pacchetti di contenuto distribuiti come parte dell’applicazione./var
risorse necessarie, definire le strutture dei nodi utilizzando repoinit. Gli script di reindirizzamento possono essere indirizzati a AEM Author, AEM Publish o a entrambi tramite le modalità di esecuzione OSGi./var
le risorse sono necessarie solo per AEM autore e non possono essere modellate in modo ragionevole utilizzando repoinit, spostali in un pacchetto di contenuti discreti, installato solo su AEM Author da incorporazione nel all
in una cartella in modalità di esecuzione di AEM Author (<target>/apps/example-packages/content/install.author</target>
).sling-distribution-importer
utente del servizio come descritto in questo KB Adobe.Se gli approcci di risoluzione dei problemi sopra descritti non risolvono il problema, crea un caso di assistenza Adobe, tramite:
Adobe Admin Console > Scheda Supporto > Crea caso
Se sei membro di più organizzazioni di Adobe, assicurati che l’organizzazione di Adobe con pipeline non riuscita sia selezionata nel commutatore delle organizzazioni di Adobe prima di creare il caso.