Impostare strumenti Dispatcher locali

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:

  • un set di base di file di configurazione del server web Apache HTTP e del Dispatcher, situato in .../dispatcher-sdk-x.x.x/src
  • uno strumento CLI di convalida della configurazione, situato in .../dispatcher-sdk-x.x.x/bin/validate
  • uno strumento CLI di generazione della configurazione, situato in .../dispatcher-sdk-x.x.x/bin/validator
  • uno strumento CLI per la distribuzione della configurazione, situato in .../dispatcher-sdk-x.x.x/bin/docker_run
  • un’immagine Docker che esegue il server Web Apache HTTP con il modulo Dispatcher

Tieni presente che ~ viene utilizzato come abbreviazione per la directory dell'utente. In Windows, è l'equivalente di %HOMEPATH%.

NOTA

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.

Prerequisiti

  1. Gli utenti Windows devono utilizzare Windows 10 Professional (o una versione che supporti Docker)
  2. Installa Experience Manager Publish Quickstart Jar sulla macchina di sviluppo locale.
    • Se necessario, installa l'ultima Sito web di riferimento AEM sul servizio AEM Publish locale. Questo sito web viene utilizzato in questa esercitazione per visualizzare un’istanza di Dispatcher funzionante.
  3. Installa e avvia la versione più recente di Docker (Docker Desktop 2.2.0.5+ / Docker Engine v19.03.9+) sulla macchina di sviluppo locale.

Download degli strumenti di Dispatcher (come parte dell’SDK AEM)

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.

  1. Accedi a [experience.adobe.com/#/download](https://experience.adobe.com/#/downloads/content/software-distribution/en/aemcloud.html?fulltext=AEM*+SDK*&1_group.propertyvalues.property=.%2Fjcr%3Acontent%2Fmetadata%2Fdc%3AsoftwareType&1_group.property.operation=equals&1_group.property.values.0_values=software-type%3Atooling&orderby=%40jcr%3Acontent%2Fjcr%3AlastModified&orderby.sort=desc&layout=list p.offset=0&p.limit=1) con il tuo Adobe ID
    • La tua organizzazione Adobe deve è disponibile il provisioning per AEM as a Cloud Service per scaricare l’SDK as a Cloud Service AEM
  2. Fai clic sull'ultima SDK AEM riga dei risultati da scaricare

Estrarre gli strumenti di Dispatcher dallo zip AEM SDK

SUGGERIMENTO

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.

  1. Decomprimi il file scaricato aem-sdk-xxx.zip file
  2. Estrai gli strumenti del Dispatcher in ~/aem-sdk/dispatcher
    • Windows: Decomprimi 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)
    • macOS / Linux: Esegui lo script shell associato 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

Comprendere i file di configurazione del Dispatcher

SUGGERIMENTO

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.

Convalidare le configurazioni

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.

  • Utilizzo:
    • Windows: bin\validate src
    • macOS / Linux: ./bin/validate.sh ./src

Eseguire il Dispatcher localmente

AEM Dispatcher viene eseguito localmente utilizzando Docker contro src File di configurazione del Dispatcher e del server Web Apache.

  • Utilizzo:
    • Windows: bin\docker_run <src-folder> <aem-publish-host>:<aem-publish-port> <dispatcher-port>
    • macOS / Linux: ./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:

  • Windows: bin\docker_run src host.docker.internal:4503 8080
  • macOS / Linux: ./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
    

Registri degli strumenti di Dispatcher

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
    • Il valore predefinito è: Warn
  • REWRITE_LOG_LEVEL=Debug imposta la registrazione del modulo di riscrittura del server Web HTTP Apache a livello di debug
    • Il valore predefinito è: Warn
  • DISP_RUN_MODE imposta la "modalità di esecuzione" dell’ambiente Dispatcher, caricando i file di configurazione del Dispatcher delle modalità di esecuzione corrispondenti.
    • Impostazione predefinita dev
  • Valori validi: dev, stageoppure 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
    

Accesso ai file di registro

I registri del server web Apache e del Dispatcher AEM sono accessibili direttamente nel contenitore Docker:

Quando aggiornare gli strumenti di Dispatcher

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.

  • Cloud Manager > Ambienti, per ambiente specificato dal Versione AEM etichetta

Versione Experience Manager

La versione stessa di Dispatcher Tools non corrisponde alla versione di Experience Manager.

Risoluzione dei problemi

docker_run restituisce il messaggio 'In attesa che host.docker.internal sia disponibile'

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:

  1. Verificare che la versione installata di Docker sia 18.03 o successiva
  2. È possibile che si disponga di una macchina locale che impedisce la registrazione/risoluzione del host.docker.internal nome. Utilizza invece il tuo IP locale.
    • Windows:
      • Dal prompt dei comandi, esegui ipconfige registra il Indirizzo IPv4 della macchina host.

      • Quindi, esegui docker_run utilizzando questo indirizzo IP:

        bin\docker_run src <HOST IP>:4503 8080

    • macOS / Linux:
      • 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

Esempio di errore

$ 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

Risorse aggiuntive

In questa pagina