O Dispatcher do Adobe Experience Manager (AEM) é um módulo de servidor Web Apache HTTP que fornece uma camada de segurança e desempenho entre a camada CDN e AEM Publish. O Dispatcher é parte integrante da arquitetura de Experience Manager geral e deve fazer parte da configuração de desenvolvimento local.
O AEM as a Cloud Service SDK inclui a versão recomendada das Ferramentas do Dispatcher, que facilita a configuração, validação e simulação do Dispatcher localmente. As Ferramentas do Dispatcher são compostas por:
.../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
Observe que ~
é usado como abreviado para o Diretório do usuário. No Windows, isso é equivalente a %HOMEPATH%
.
Os vídeos desta página foram gravados no macOS. Os usuários do Windows podem seguir, mas usam os comandos do Dispatcher Tools Windows equivalentes, fornecidos com cada vídeo.
O AEM SDK as a Cloud Service, ou SDK AEM, contém as Ferramentas do Dispatcher usadas para executar o servidor Web Apache HTTP com o módulo Dispatcher localmente para desenvolvimento, bem como o QuickStart Jar compatível.
Se o SDK as a Cloud Service AEM já tiver sido baixado para configurar o tempo de execução do AEM local, ele não precisa ser baixado novamente.
Os usuários do Windows não podem ter espaços ou caracteres especiais no caminho para a pasta que contém as Ferramentas do Dispatcher Locais. Se houver espaços no caminho, a variável docker_run.cmd
falhará.
A versão das Ferramentas do Dispatcher é diferente da do SDK do AEM. Certifique-se de que a versão das Ferramentas do Dispatcher seja fornecida por meio da versão do SDK AEM correspondente à versão as a Cloud Service AEM.
aem-sdk-xxx.zip
arquivo~/aem-sdk/dispatcher
aem-sdk-dispatcher-tools-x.x.x-windows.zip
em C:\Users\<My User>\aem-sdk\dispatcher
(criando pastas ausentes, conforme necessário)aem-sdk-dispatcher-tools-x.x.x-unix.sh
para descompactar as Ferramentas do Dispatcher
chmod a+x aem-sdk-dispatcher-tools-x.x.x-unix.sh && ./aem-sdk-dispatcher-tools-x.x.x-unix.sh
Observe que todos os comandos emitidos abaixo pressupõem que o diretório de trabalho atual contém o conteúdo expandindo as Ferramentas do Dispatcher.
Este vídeo usa o macOS para fins ilustrativos. Os comandos equivalentes do Windows/Linux podem ser usados para obter resultados semelhantes
Projetos Experience Manager criados a partir do Arquétipo de Maven do Projeto AEM são preenchidos previamente nesse conjunto de arquivos de configuração do Dispatcher, portanto, não há necessidade de copiar da pasta src Ferramentas do Dispatcher.
As Ferramentas do Dispatcher fornecem um conjunto de arquivos de configuração Apache HTTP Web Server e Dispatcher que definem o comportamento para todos os ambientes, incluindo o desenvolvimento local.
Esses arquivos devem ser copiados em um projeto Experience Manager Maven para o dispatcher/src
, se eles ainda não existirem no projeto Experience Manager Maven.
Uma descrição completa dos arquivos de configuração está disponível nas Ferramentas do Dispatcher descompactadas como dispatcher-sdk-x.x.x/docs/Config.html
.
Opcionalmente, as configurações do servidor Web Dispatcher e Apache (por meio de httpd -t
) pode ser validado usando o validate
script (não confundir com validator
executável). O validate
O script fornece uma maneira conveniente de executar o 3 fases do validator
.
bin\validate src
./bin/validate.sh ./src
AEM Dispatcher é executado localmente usando o Docker em relação à src
Arquivos de configuração do Dispatcher e do Apache Web Server.
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>
O <aem-publish-host>
pode ser definido como host.docker.internal
, um nome DNS especial que o Docker fornece no contêiner que resolve o IP da máquina host. Se ele host.docker.internal
não resolver, consulte o solução de problemas abaixo.
Por exemplo, para iniciar o contêiner do Dispatcher Docker usando os arquivos de configuração padrão fornecidos pelas Ferramentas do Dispatcher:
Inicie o contêiner do Dispatcher Docker fornecendo o caminho para a pasta src de configuração do Dispatcher:
bin\docker_run src host.docker.internal:4503 8080
./bin/docker_run.sh ./src host.docker.internal:4503 8080
O Serviço de Publicação do SDK as a Cloud Service AEM, executado localmente na porta 4503, está disponível por meio do Dispatcher em http://localhost:8080
.
Para executar as Ferramentas do Dispatcher em relação à configuração do Dispatcher de um projeto do Experience Manager, aponte para o dispatcher/src
pasta.
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
Os logs do Dispatcher são úteis durante o desenvolvimento local para entender se e por que as Solicitações HTTP são bloqueadas. O nível de log pode ser definido com o prefixo da execução de docker_run
com parâmetros de ambiente.
Os logs de Ferramentas do Dispatcher são emitidos para o padrão quando docker_run
é executado.
Os parâmetros úteis para depurar o Dispatcher incluem:
DISP_LOG_LEVEL=Debug
define o log do módulo Dispatcher para o nível de Depuração
Warn
REWRITE_LOG_LEVEL=Debug
define o registro do módulo de reescrita do servidor Web Apache HTTP para o nível de Depuração
Warn
DISP_RUN_MODE
define o "modo de execução" do ambiente Dispatcher, carregando os modos de execução correspondentes dos arquivos de configuração do Dispatcher.
dev
dev
, stage
ou prod
Um ou vários parâmetros podem ser passados para 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
O servidor Web Apache e AEM os logs do Dispatcher podem ser acessados diretamente no container Docker:
As versões das Ferramentas do Dispatcher aumentam com menos frequência do que o Experience Manager e, portanto, as Ferramentas do Dispatcher exigem menos atualizações no ambiente de desenvolvimento local.
A versão recomendada das Ferramentas do Dispatcher é aquela que é fornecida com o SDK as a Cloud Service AEM que corresponde à versão do Experience Manager as a Cloud Service. A versão do AEM as a Cloud Service pode ser encontrada por meio de Cloud Manager.
Observe que a própria versão das Ferramentas do Dispatcher não corresponderá à versão do Experience Manager.
host.docker.internal
é um nome de host fornecido ao Docker que é resolvido para o host. Por docs.docker.com (macOS, Windows):
A partir do Docker 18.03, nossa recomendação é se conectar ao nome DNS especial host.docker.internal, que resolve para o endereço IP interno usado pelo host
Se, quando bin/docker_run src host.docker.internal:4503 8080
resulta na mensagem Aguardar até que host.docker.internal esteja disponível, em seguida:
host.docker.internal
nome. Em vez disso, use seu IP local.
No Prompt de Comando, execute ipconfig
e registre o Endereço IPv4 da máquina host.
Em seguida, execute docker_run
usando este endereço IP:
bin\docker_run src <HOST IP>:4503 8080
No Terminal, execute ifconfig
e registrar o host inet Endereço IP, geralmente o en0 dispositivo.
Em seguida, execute docker_run
usando o endereço IP do 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