Dispatcher di Adobe Experience Manager (AEM) è un modulo server web Apache HTTP che fornisce una protezione e prestazioni tra il livello CDN e AEM Publish. Dispatcher è parte integrante dell’architettura Experience Manager complessiva e deve far parte della configurazione dello sviluppo locale.
L’SDK AEM as a Cloud Service include la versione consigliata degli strumenti di Dispatcher, che facilita la configurazione, la convalida e la simulazione locale di Dispatcher. Gli strumenti di Dispatcher sono formati da:
.../dispatcher-sdk-x.x.x/src
.../dispatcher-sdk-x.x.x/bin/validate
.../dispatcher-sdk-x.x.x/bin/validator
.../dispatcher-sdk-x.x.x/bin/docker_run
Tieni presente che ~
viene utilizzato come abbreviazione per la directory dell'utente. In Windows, è l'equivalente di %HOMEPATH%
.
I video in questa pagina sono stati registrati su macOS. Gli utenti Windows possono seguire questa procedura, ma utilizzare i comandi Windows equivalenti di Dispatcher Tools, forniti con ogni video.
L’SDK AEM as a Cloud Service, o SDK AEM, contiene gli strumenti del Dispatcher utilizzati per eseguire il server Web Apache HTTP con il modulo Dispatcher localmente per lo sviluppo, nonché il Jar QuickStart compatibile.
Se l'SDK as a Cloud Service AEM è già stato scaricato in imposta il runtime AEM locale, non è necessario scaricarlo nuovamente.
Gli utenti Windows non possono contenere spazi o caratteri speciali nel percorso della cartella contenente gli strumenti Dispatcher locali. Se nel percorso sono presenti spazi, la docker_run.cmd
fallirà.
La versione di Strumenti Dispatcher è diversa da quella dell’SDK AEM. Assicurati che la versione di Dispatcher Tools sia fornita tramite la versione SDK AEM che corrisponde alla versione as a Cloud Service AEM.
aem-sdk-xxx.zip
file~/aem-sdk/dispatcher
aem-sdk-dispatcher-tools-x.x.x-windows.zip
in C:\Users\<My User>\aem-sdk\dispatcher
(creazione delle cartelle mancanti in base alle esigenze)aem-sdk-dispatcher-tools-x.x.x-unix.sh
per decomprimere gli strumenti Dispatcher
chmod a+x aem-sdk-dispatcher-tools-x.x.x-unix.sh && ./aem-sdk-dispatcher-tools-x.x.x-unix.sh
Tutti i comandi emessi di seguito presuppongono che la directory di lavoro corrente contenga il contenuto degli strumenti Dispatcher in espansione.
Questo video utilizza macOS a scopo illustrativo. I comandi Windows/Linux equivalenti possono essere utilizzati per ottenere risultati simili
Experience Manager di progetti creati dalla Archetipo AEM progetto Maven sono precompilati questo set di file di configurazione di Dispatcher, pertanto non è necessario copiarlo dalla cartella src di Dispatcher Tools.
Gli strumenti Dispatcher forniscono un set di file di configurazione del server Web Apache HTTP e del Dispatcher che definiscono il comportamento per tutti gli ambienti, incluso lo sviluppo locale.
Questi file devono essere copiati in un progetto Experience Manager Maven dispatcher/src
se non esistono già nel progetto Experience Manager Maven.
Una descrizione completa dei file di configurazione è disponibile negli strumenti Dispatcher decompressi come dispatcher-sdk-x.x.x/docs/Config.html
.
Facoltativamente, le configurazioni del Dispatcher e del server web Apache (tramite httpd -t
) può essere convalidata utilizzando validate
script (da non confondere con validator
eseguibile). La validate
lo script offre un modo pratico di eseguire 3 fasi del validator
.
bin\validate src
./bin/validate.sh ./src
AEM Dispatcher viene eseguito localmente utilizzando Docker contro src
File di configurazione del Dispatcher e del server Web Apache.
bin\docker_run <src-folder> <aem-publish-host>:<aem-publish-port> <dispatcher-port>
./bin/docker_run.sh <src-folder> <aem-publish-host>:<aem-publish-port> <dispatcher-port>
La <aem-publish-host>
può essere impostato su host.docker.internal
, un Docker di nome DNS speciale fornisce nel contenitore che viene risolto nell'IP del computer host. Se host.docker.internal
non risolve, vedi risoluzione di seguito.
Ad esempio, per avviare il contenitore Docker Dispatcher utilizzando i file di configurazione predefiniti forniti dagli strumenti Dispatcher:
Avvia il contenitore Docker del Dispatcher fornendo il percorso della cartella src di configurazione del Dispatcher:
bin\docker_run src host.docker.internal:4503 8080
./bin/docker_run.sh ./src host.docker.internal:4503 8080
Il servizio Publish dell’SDK di AEM, eseguito localmente sulla porta 4503, è disponibile tramite Dispatcher all’indirizzo http://localhost:8080
.
Per eseguire gli strumenti di Dispatcher rispetto alla configurazione del Dispatcher di un progetto di Experience Manager, fai riferimento al dispatcher/src
cartella.
Windows:
$ bin\docker_run <User Directory>/code/my-project/dispatcher/src host.docker.internal:4503 8080
macOS / Linux:
$ ./bin/docker_run.sh ~/code/my-project/dispatcher/src host.docker.internal:4503 8080
I registri del Dispatcher sono utili durante lo sviluppo locale per capire se e perché le richieste HTTP sono bloccate. Il livello di log può essere impostato prefissando l'esecuzione di docker_run
con parametri di ambiente.
I registri degli strumenti del Dispatcher vengono emessi in modalità standard quando docker_run
viene eseguito.
I parametri utili per il debug di Dispatcher includono:
DISP_LOG_LEVEL=Debug
imposta la registrazione del modulo Dispatcher a livello di debug
Warn
REWRITE_LOG_LEVEL=Debug
imposta la registrazione del modulo di riscrittura del server Web HTTP Apache a livello di debug
Warn
DISP_RUN_MODE
imposta la "modalità di esecuzione" dell’ambiente Dispatcher, caricando i file di configurazione del Dispatcher delle modalità di esecuzione corrispondenti.
dev
dev
, stage
oppure prod
Uno o più parametri possono essere passati a docker_run
Windows:
$ DISP_LOG_LEVEL=Debug REWRITE_LOG_LEVEL=Debug bin\docker_run <User Directory>/code/my-project/dispatcher/src host.docker.internal:4503 8080
macOS / Linux:
$ DISP_LOG_LEVEL=Debug REWRITE_LOG_LEVEL=Debug ./bin/docker_run.sh ~/code/my-project/dispatcher/src host.docker.internal:4503 8080
I registri del server web Apache e del Dispatcher AEM sono accessibili direttamente nel contenitore Docker:
Le versioni degli strumenti di Dispatcher incrementano meno frequentemente dell’Experience Manager, pertanto gli strumenti di Dispatcher richiedono meno aggiornamenti nell’ambiente di sviluppo locale.
La versione consigliata degli strumenti di Dispatcher è quella fornita con l’SDK as a Cloud Service AEM che corrisponde alla versione as a Cloud Service dell’Experience Manager. La versione di AEM as a Cloud Service può essere trovata tramite Cloud Manager.
La versione stessa di Dispatcher Tools non corrisponde alla versione di Experience Manager.
host.docker.internal
è un nome host fornito al Docker contenente che viene risolto nell'host. Per docs.docker.com (macOS, Windows):
A partire da Docker 18.03 il nostro consiglio è di connettersi al nome DNS speciale host.docker.internal, che si risolve all'indirizzo IP interno utilizzato dall'host
Se, quando bin/docker_run src host.docker.internal:4503 8080
restituisce il messaggio In attesa che host.docker.internal sia disponibile, quindi:
host.docker.internal
nome. Utilizza invece il tuo IP locale.
Dal prompt dei comandi, esegui ipconfig
e registra il Indirizzo IPv4 della macchina host.
Quindi, esegui docker_run
utilizzando questo indirizzo IP:
bin\docker_run src <HOST IP>:4503 8080
Da terminale, esegui ifconfig
e registra l'host inet Indirizzo IP, in genere en0 dispositivo.
Quindi esegui docker_run
utilizzando l'indirizzo IP host:
bin/docker_run.sh src <HOST IP>:4503 8080
$ docker_run src host.docker.internal:4503 8080
Running script /docker_entrypoint.d/10-check-environment.sh
Running script /docker_entrypoint.d/20-create-docroots.sh
Running script /docker_entrypoint.d/30-wait-for-backend.sh
Waiting until host.docker.internal is available