Configurar las herramientas locales de Dispatcher set-up-local-dispatcher-tools
Dispatcher AEM de Adobe Experience Manager AEM () es un módulo de servidor web HTTP Apache que proporciona una capa de seguridad y rendimiento entre el nivel de CDN y Publish de la. Dispatcher es una parte integral de la arquitectura de Experience Manager general y debe formar parte de la configuración de desarrollo local.
El SDK de AEM as a Cloud Service incluye la versión de herramientas de Dispatcher recomendada que facilita la configuración, validación y simulación de Dispatcher localmente. Las herramientas de Dispatcher están compuestas por:
- un conjunto de línea de base de archivos de configuración de Dispatcher y servidor web HTTP Apache, ubicado en
.../dispatcher-sdk-x.x.x/src
- una herramienta CLI de validación de configuración, ubicada en
.../dispatcher-sdk-x.x.x/bin/validate
- una herramienta CLI de generación de configuración, ubicada en
.../dispatcher-sdk-x.x.x/bin/validator
- una herramienta CLI de implementación de configuración, ubicada en
.../dispatcher-sdk-x.x.x/bin/docker_run
- un archivo de configuración inmutable que sobrescribe la herramienta CLI, ubicada en
.../dispatcher-sdk-x.x.x/bin/update_maven
- una imagen Docker que ejecuta el servidor web HTTP Apache con el módulo Dispatcher
Tenga en cuenta que ~
se usa como abreviatura del directorio del usuario. En Windows, es el equivalente de %HOMEPATH%
.
Requisitos previos
- Los usuarios de Windows deben utilizar Windows 10 Professional (o una versión compatible con Docker)
- Instale Experience Manager Publish Quickstart Jar en el equipo de desarrollo local.
- AEM AEM Si lo desea, instale el sitio web de referencia más reciente en el servicio local de de Publish. Este sitio web se utiliza en este tutorial para visualizar una Dispatcher en funcionamiento.
- Instale e inicie la última versión de Docker (Docker Desktop 2.2.0.5+ / Docker Engine v19.03.9+) en el equipo de desarrollo local.
Descargar las herramientas de Dispatcher AEM (como parte del SDK de la)
El SDK de AEM as a Cloud Service AEM, o SDK de, contiene las herramientas de Dispatcher utilizadas para ejecutar el servidor web HTTP de Apache con el módulo de Dispatcher localmente para desarrollo y el Jar de inicio rápido compatible.
Si el SDK de AEM as a Cloud Service AEM ya se ha descargado para configurar el tiempo de ejecución de la local, no es necesario volver a descargarlo.
- Inicie sesión en experience.adobe.com/#/downloads con su Adobe ID
- Su organización de Adobe debe estar aprovisionada para que AEM as a Cloud Service descargue el SDK de AEM as a Cloud Service
- AEM Haga clic en la fila de resultados del SDK más reciente para descargar.
Extraiga las herramientas de Dispatcher AEM del zip del SDK de la
docker_run.cmd
produce un error.La versión de las herramientas de Dispatcher AEM es diferente de la del SDK de la. Asegúrese de que la versión de las herramientas de Dispatcher AEM se proporciona a través de la versión del SDK de la que coincide con la versión de AEM as a Cloud Service.
- Descomprima el archivo
aem-sdk-xxx.zip
descargado - Desempaquetar las herramientas de Dispatcher en
~/aem-sdk/dispatcher
code language-shell |
---|
|
aem-sdk-dispatcher-tools-x.x.x-windows.zip
en C:\Users\<My User>\aem-sdk\dispatcher
(creando las carpetas que faltan según sea necesario).code language-shell |
---|
|
Todos los comandos que se emiten a continuación suponen que el directorio de trabajo actual contiene el contenido de herramientas de Dispatcher en expansión.
Este vídeo utiliza macOS con fines ilustrativos. Los comandos equivalentes de Windows/Linux se pueden usar para obtener resultados similares.
Comprender los archivos de configuración de Dispatcher
Las herramientas de Dispatcher proporcionan un conjunto de archivos de configuración de Dispatcher y del servidor web HTTP Apache que definen el comportamiento de todos los entornos, incluido el desarrollo local.
Estos archivos están pensados para copiarse en un proyecto de Maven de Experience Manager en la carpeta dispatcher/src
, si no existen en el proyecto de Maven de Experience Manager.
Hay disponible una descripción completa de los archivos de configuración en las herramientas de Dispatcher desempaquetadas como dispatcher-sdk-x.x.x/docs/Config.html
.
Validar configuraciones
Opcionalmente, las configuraciones del servidor web Dispatcher y Apache (a través de httpd -t
) se pueden validar utilizando el script validate
(no confundirlo con el ejecutable validator
). El script validate
proporciona una forma cómoda de ejecutar las tres fases de validator
.
code language-shell |
---|
|
code language-shell |
---|
|
code language-shell |
---|
|
Ejecutar Dispatcher localmente
AEM Dispatcher se ejecuta localmente mediante Docker con los archivos de configuración de src
Dispatcher y del servidor web Apache.
code language-shell |
---|
|
El ejecutable docker_run_hot_reload
es preferible sobre docker_run
, ya que vuelve a cargar los archivos de configuración a medida que se modifican, sin tener que terminar manualmente ni reiniciar docker_run
. Como alternativa, docker_run
se puede usar, pero requiere finalizar y reiniciar manualmente docker_run
cuando se cambien los archivos de configuración.
code language-shell |
---|
|
code language-shell |
---|
|
El ejecutable docker_run_hot_reload
es preferible sobre docker_run
, ya que vuelve a cargar los archivos de configuración a medida que se modifican, sin tener que terminar manualmente ni reiniciar docker_run
. Como alternativa, docker_run
se puede usar, pero requiere finalizar y reiniciar manualmente docker_run
cuando se cambien los archivos de configuración.
El <aem-publish-host>
se puede establecer en host.docker.internal
, un nombre DNS especial que Docker proporciona en el contenedor que se resuelve en la dirección IP del equipo host. Si host.docker.internal
no se resuelve, consulte la sección solución de problemas a continuación.
Por ejemplo, para iniciar el contenedor de Dispatcher Docker utilizando los archivos de configuración predeterminados proporcionados por las herramientas de Dispatcher:
Inicie el contenedor de Dispatcher Docker que proporciona la ruta a la carpeta src de configuración de Dispatcher:
code language-shell |
---|
|
code language-shell |
---|
|
code language-shell |
---|
|
El servicio Publish del SDK de AEM as a Cloud Service, que se ejecuta localmente en el puerto 4503, está disponible a través de Dispatcher en http://localhost:8080
.
Para ejecutar las herramientas de Dispatcher en la configuración de Dispatcher de un proyecto de Experience Manager, elija la carpeta dispatcher/src
del proyecto.
code language-shell |
---|
|
code language-shell |
---|
|
code language-shell |
---|
|
Registros de herramientas de Dispatcher
Los registros de Dispatcher son útiles durante el desarrollo local para comprender si las solicitudes HTTP están bloqueadas y por qué. El nivel de registro se puede establecer prefiriendo la ejecución de docker_run
con parámetros de entorno.
Los registros de Dispatcher Tools se emiten al resultado estándar cuando se ejecuta docker_run
.
Los parámetros útiles para depurar Dispatcher incluyen:
DISP_LOG_LEVEL=Debug
establece el registro del módulo de Dispatcher en el nivel de depuración- El valor predeterminado es:
Warn
- El valor predeterminado es:
REWRITE_LOG_LEVEL=Debug
establece el registro del módulo de reescritura del servidor web HTTP Apache en el nivel de depuración- El valor predeterminado es:
Warn
- El valor predeterminado es:
DISP_RUN_MODE
establece el "modo de ejecución" del entorno de Dispatcher y carga los archivos de configuración de Dispatcher de los modos de ejecución correspondientes.- Valores predeterminados de
dev
- Valores predeterminados de
- Valores válidos:
dev
,stage
oprod
Se pueden pasar uno o varios parámetros a docker_run
code language-shell |
---|
|
code language-shell |
---|
|
code language-shell |
---|
|
Acceso a archivo de registro
AEM Se puede acceder directamente al servidor web Apache y a los registros de Dispatcher en el contenedor de Docker:
Cuándo actualizar las herramientas de Dispatcher dispatcher-tools-version
Las versiones de Dispatcher Tools aumentan con menos frecuencia que el Experience Manager y, por lo tanto, Dispatcher Tools requiere menos actualizaciones en el entorno de desarrollo local.
La versión de Dispatcher Tools recomendada es la que está empaquetada con el SDK de AEM as a Cloud Service que coincide con la versión as a Cloud Service en Experience Manager. Se puede encontrar la versión de AEM as a Cloud Service a través de Cloud Manager.
- Cloud Manager AEM > Entornos, por entorno especificado por la etiqueta Versión de la versión
Tenga en cuenta que la versión de Dispatcher Tools no coincide con la versión del Experience Manager.
Cómo actualizar el conjunto de líneas de base de las configuraciones de Apache y Dispatcher
El conjunto de línea de base de la configuración de Apache y Dispatcher se mejora regularmente y se lanza con la versión del SDK de AEM as a Cloud Service. AEM Se recomienda incorporar las mejoras de configuración de línea de base en el proyecto de y evitar errores de validación local y de canalización de Cloud Manager. Actualícelos utilizando el script update_maven.sh
de la carpeta .../dispatcher-sdk-x.x.x/bin
.
Este vídeo utiliza macOS con fines ilustrativos. Los comandos equivalentes de Windows/Linux se pueden usar para obtener resultados similares.
AEM AEM Supongamos que ha creado un proyecto en el pasado utilizando Arquetipo de proyecto de, las configuraciones de línea base de Apache y Dispatcher eran actuales. Con estas configuraciones de línea de base, las configuraciones específicas del proyecto se crearon reutilizando y copiando archivos como *.vhost
, *.conf
, *.farm
y *.any
de las carpetas dispatcher/src/conf.d
y dispatcher/src/conf.dispatcher.d
. Su validación local de Dispatcher y sus canalizaciones de Cloud Manager funcionaban correctamente.
Mientras tanto, las configuraciones de línea base de Apache y Dispatcher se mejoraron por varias razones, como nuevas funciones, correcciones de seguridad y optimización. Se publican mediante una versión más reciente de las herramientas de Dispatcher como parte de la versión de AEM as a Cloud Service.
Ahora, al validar las configuraciones de Dispatcher específicas del proyecto con la última versión de Dispatcher Tools, comienzan a dar errores. Para resolver esto, es necesario actualizar las configuraciones de línea de base mediante los siguientes pasos:
-
Compruebe que la validación falla con la última versión de las herramientas de Dispatcher
code language-shell $ ./bin/validate.sh ${YOUR-AEM-PROJECT}/dispatcher/src ... Phase 3: Immutability check empty mode param, assuming mode = 'check' ... ** error: immutable file 'conf.d/available_vhosts/default.vhost' has been changed!
-
Actualizar los archivos inmutables mediante el script
update_maven.sh
code language-shell $ ./bin/update_maven.sh ${YOUR-AEM-PROJECT}/dispatcher/src ... Updating dispatcher configuration at folder running in 'extract' mode running in 'extract' mode reading immutable file list from /etc/httpd/immutable.files.txt preparing 'conf.d/available_vhosts/default.vhost' immutable file extraction ... immutable files extraction COMPLETE fd72f4521fa838daaaf006bb8c9c96ed33a142a2d63cc963ba4cc3dd228948fe Cloud manager validator 2.0.53
-
Compruebe los archivos inmutables actualizados como
dispatcher_vhost.conf
,default.vhost
ydefault.farm
y, si es necesario, realice los cambios pertinentes en los archivos personalizados que se derivan de estos archivos. -
Vuelva a validar la configuración y debería pasar.
$ ./bin/validate.sh ${YOUR-AEM-PROJECT}/dispatcher/src
...
checking 'conf.dispatcher.d/renders/default_renders.any' immutability (if present)
checking existing 'conf.dispatcher.d/renders/default_renders.any' for changes
checking 'conf.dispatcher.d/virtualhosts/default_virtualhosts.any' immutability (if present)
checking existing 'conf.dispatcher.d/virtualhosts/default_virtualhosts.any' for changes
no immutable file has been changed - check is SUCCESSFUL
Phase 3 finished
- Después de la verificación local de los cambios, confirme los archivos de configuración actualizados
Resolución de problemas
docker_run da como resultado el mensaje "Esperando hasta que host.docker.internal esté disponible" troubleshooting-host-docker-internal
host.docker.internal
es un nombre de host proporcionado al contenedor Docker que se resuelve en el host. Por docs.docker.com (macOS, Windows):
A partir de Docker 18.03, la recomendación es conectarse al nombre DNS especial host.docker.internal, que se resuelve en la dirección IP interna utilizada por el host
Cuando bin/docker_run src host.docker.internal:4503 8080
dé como resultado el mensaje Esperando a que host.docker.internal esté disponible, entonces:
- Asegúrese de que la versión instalada de Docker sea 18.03 o superior
- Es posible que tenga configurado un equipo local que impida el registro o la resolución del nombre de
host.docker.internal
. En su lugar, utilice su IP local.
-
Desde el terminal, ejecute
ifconfig
y registre la dirección IP del host inet, normalmente el dispositivo en0. -
A continuación, ejecute
docker_run
utilizando la dirección IP del host:$ bin/docker_run_hot_reload.sh src <HOST IP>:4503 8080
-
Desde el símbolo del sistema, ejecute
ipconfig
y registre la dirección IPv4 del host en el equipo host. -
A continuación, ejecute
docker_run
con esta dirección IP:$ bin\docker_run src <HOST IP>:4503 8080
-
Desde el terminal, ejecute
ifconfig
y registre la dirección IP del host inet, normalmente el dispositivo en0. -
A continuación, ejecute
docker_run
utilizando la dirección IP del host:$ bin/docker_run_hot_reload.sh src <HOST IP>:4503 8080
Error de ejemplo
$ 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