Lokale gereedschappen voor Dispatcher instellen set-up-local-dispatcher-tools
De Verzender van Adobe Experience Manager (AEM) is een Apache HTTP- de servermodule die een veiligheid en prestatieslaag tussen CDN en AEM publicatielaag verstrekt. Dispatcher is een integraal onderdeel van de algehele architectuur van de Experience Manager en moet onderdeel zijn van de lokale ontwikkelinstellingen.
De AEM as a Cloud Service SDK bevat de aanbevolen versie van Dispatcher Tools waarmee u het valideren kunt configureren en de Dispatcher lokaal kunt simuleren. Dispatcher Tools bestaat uit:
- een basislijnset van Apache HTTP Web server and Dispatcher configuration files, gevestigd op
.../dispatcher-sdk-x.x.x/src
- een CLI-hulpprogramma voor configuratievalidatie, dat zich bevindt op
.../dispatcher-sdk-x.x.x/bin/validate
- een hulpmiddel van de configuratiegeneratie CLI, dat bij wordt gevestigd
.../dispatcher-sdk-x.x.x/bin/validator
- een hulpmiddel van de configuratieplaatsing CLI, dat bij wordt gevestigd
.../dispatcher-sdk-x.x.x/bin/docker_run
- een onveranderlijke configuratiedossiers die CLI hulpmiddel beschrijven, dat bij wordt gevestigd
.../dispatcher-sdk-x.x.x/bin/update_maven
- een Docker-afbeelding die Apache HTTP Web-server uitvoert met de module Dispatcher
Let op: ~
wordt gebruikt als steno voor de Folder van de Gebruiker. In Windows is dit het equivalent van %HOMEPATH%
.
Vereisten
- Windows-gebruikers moeten Windows 10 Professional gebruiken (of een versie die Docker ondersteunt)
- Installeren Experience Manager publiceert QuickStart Jar op de lokale ontwikkelingsmachine.
- Installeer indien nodig de nieuwste AEM website op de lokale AEM-publicatieservice. Deze website wordt in deze zelfstudie gebruikt om een werkende Dispatcher te visualiseren.
- De nieuwste versie van Docker (Docker Desktop 2.2.0.5+ / Docker Engine v19.03.9+) op de lokale ontwikkelcomputer.
Download de Dispatcher Tools (als onderdeel van de AEM SDK)
De AEM as a Cloud Service SDK, of AEM SDK, bevat de Dispatcher Tools die worden gebruikt om de Apache HTTP Web-server met de module Dispatcher lokaal voor ontwikkeling uit te voeren, en compatibele QuickStart Jar.
Als de AEM as a Cloud Service SDK al is gedownload naar de lokale AEM-runtime instellenhoeft u de toepassing niet opnieuw te downloaden.
- Aanmelden bij [experience.adobe.com/#/downloads](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.propertyvalues.operation=equals&1_group.propertyvalues.0_values=software-type%3Atooling&orderby=%40jcr%3Acontent%2Fjcr%3AlastModified&orderby.sort=desc&layout=list p.offset=0&p.limit=1) met uw Adobe ID
- Uw Adobe-organisatie moet zijn ingericht voor AEM as a Cloud Service om de AEM as a Cloud Service SDK te downloaden
- Klik op de nieuwste AEM SDK te downloaden resultatenrij
De Dispatcher Tools extraheren uit de AEM SDK zip
docker_run.cmd
mislukt.De versie van Dispatcher Tools verschilt van die van de AEM SDK. Zorg ervoor dat de versie van Dispatcher Tools beschikbaar is via de AEM SDK-versie die overeenkomt met de as a Cloud Service versie van AEM.
- De gedownloade gegevens decomprimeren
aem-sdk-xxx.zip
file - Verpak de Dispatcher Tools uit in
~/aem-sdk/dispatcher
code language-shell |
---|
|
aem-sdk-dispatcher-tools-x.x.x-windows.zip
in C:\Users\<My User>\aem-sdk\dispatcher
(ontbrekende mappen maken, indien nodig).code language-shell |
---|
|
Alle hieronder uitgegeven bevelen veronderstellen dat de huidige het werk folder de het uitvouwen inhoud van de Hulpmiddelen van de Verzender bevat.
Deze video gebruikt macOS ter illustratie. Met de equivalente Windows/Linux-opdrachten kunt u vergelijkbare resultaten bereiken.
De Dispatcher-configuratiebestanden begrijpen
De Dispatcher Tools biedt een set Apache HTTP Web-server- en Dispatcher-configuratiebestanden die gedrag voor alle omgevingen, inclusief lokale ontwikkeling, definiëren.
Deze bestanden zijn bedoeld om naar een Experience Manager Maven-project te worden gekopieerd dispatcher/src
als deze niet bestaan in het Experience Manager Maven-project.
Een volledige beschrijving van de configuratiebestanden is beschikbaar in de onverpakte Dispatcher Tools als dispatcher-sdk-x.x.x/docs/Config.html
.
Configuraties valideren
Optioneel, de Dispatcher en Apache de serverconfiguraties van het Web (via httpd -t
) kan worden gevalideerd met de validate
script (niet te verwarren met het validator
uitvoerbaar). De validate
is een handige manier om het script uit te voeren drie fasen van de validator
.
code language-shell |
---|
|
code language-shell |
---|
|
code language-shell |
---|
|
Verzending lokaal uitvoeren
AEM Dispatcher lokaal wordt uitgevoerd met Docker op de src
Configuratiebestanden van de server Dispatcher en Apache Web.
code language-shell |
---|
|
De docker_run_hot_reload
uitvoerbaar bestand heeft de voorkeur boven docker_run
aangezien het configuratiedossiers opnieuw laadt aangezien zij worden veranderd, zonder het moeten manueel eindigen en opnieuw beginnen docker_run
. Alternatief, docker_run
kan worden gebruikt, maar moet handmatig worden beëindigd en opnieuw worden gestart docker_run
wanneer configuratiebestanden worden gewijzigd.
code language-shell |
---|
|
code language-shell |
---|
|
De docker_run_hot_reload
uitvoerbaar bestand heeft de voorkeur boven docker_run
aangezien het configuratiedossiers opnieuw laadt aangezien zij worden veranderd, zonder het moeten manueel eindigen en opnieuw beginnen docker_run
. Alternatief, docker_run
kan worden gebruikt, maar moet handmatig worden beëindigd en opnieuw worden gestart docker_run
wanneer configuratiebestanden worden gewijzigd.
De <aem-publish-host>
kan worden ingesteld op host.docker.internal
, verstrekt een speciale DNS naamDocker in de container die aan IP van de gastheermachine oplost. Als de host.docker.internal
niet wordt opgelost, zie de problemen oplossen hieronder.
U kunt bijvoorbeeld de Dispatcher Docker-container starten met de standaardconfiguratiebestanden van de Dispatcher Tools:
Start Dispatcher Docker-container die het pad naar de Dispatcher-configuratiemap bevat:
code language-shell |
---|
|
code language-shell |
---|
|
code language-shell |
---|
|
De AEM as a Cloud Service publicatieservice van SDK, die plaatselijk op haven 4503 loopt is beschikbaar door Dispatcher bij http://localhost:8080
.
Om de Hulpmiddelen van de Verzender tegen de configuratie van de Verzender van een project van de Experience Manager in werking te stellen, richt aan uw project dispatcher/src
map.
code language-shell |
---|
|
code language-shell |
---|
|
code language-shell |
---|
|
Logboeken voor Dispatcher Tools
Logboeken van de verzender zijn nuttig tijdens lokale ontwikkeling om te begrijpen als en waarom de Verzoeken van HTTP worden geblokkeerd. U kunt het logniveau instellen door vooraf de uitvoering van docker_run
met omgevingsparameters.
Logboeken van Dispatcher Tools worden uitgestraald naar de standaard wanneer docker_run
wordt uitgevoerd.
Nuttige parameters voor het zuiveren Dispatcher omvatten:
DISP_LOG_LEVEL=Debug
Hiermee stelt u de logboekregistratie van de module Dispatcher in op het niveau Foutopsporing- Standaardwaarde is:
Warn
- Standaardwaarde is:
REWRITE_LOG_LEVEL=Debug
stelt Apache HTTP Web server herwrite module logging to Debug level in- Standaardwaarde is:
Warn
- Standaardwaarde is:
DISP_RUN_MODE
Hiermee stelt u de "uitvoeringsmodus" van de Dispatcher-omgeving in en laadt u de bijbehorende uitvoermodi Dispatcher-configuratiebestanden.- Standaardwaarden:
dev
- Standaardwaarden:
- Geldige waarden:
dev
,stage
, ofprod
Een of meer parameters, die kunnen worden doorgegeven aan docker_run
code language-shell |
---|
|
code language-shell |
---|
|
code language-shell |
---|
|
Toegang tot logbestanden
Logbestanden van Apache-webservers en AEM Dispatcher kunnen rechtstreeks worden geopend in de Docker-container:
Wanneer werkt u de Dispatcher Tools bij dispatcher-tools-version
Versies van Dispatcher Tools nemen minder vaak toe dan de Experience Manager en dus vereisen Dispatcher Tools minder updates in de lokale ontwikkelomgeving.
De aanbevolen versie van Dispatcher Tools is die welke is meegeleverd bij de AEM as a Cloud Service SDK die overeenkomt met de as a Cloud Service versie van de Experience Manager. De versie van AEM as a Cloud Service is te vinden via Cloud Manager.
- Cloud Manager > Omgevingen, per door de AEM label
De versie Dispatcher Tools komt niet overeen met de versie van Experience Manager.
De basislijnset van Apache- en Dispatcher-configuraties bijwerken
De basislijnset van Apache- en Dispatcher-configuratie wordt regelmatig verbeterd en vrijgegeven met de AEM as a Cloud Service SDK-versie. Het is beste praktijken om de verhogingen van de basislijnconfiguratie in uw AEM project op te nemen en te vermijden lokale validatie en fouten met de pijpleiding in Cloud Manager. Werk ze bij met de functie update_maven.sh
script van het .../dispatcher-sdk-x.x.x/bin
map.
Deze video gebruikt macOS ter illustratie. Met de equivalente Windows/Linux-opdrachten kunt u vergelijkbare resultaten bereiken.
Laten we aannemen dat u in het verleden een AEM project hebt gemaakt met Projectarchetype AEMDe basislijnconfiguraties Apache en Dispatcher waren actueel. Gebruikend deze basislijnconfiguraties werden uw project-specifieke configuraties gecreeerd door, de dossiers als opnieuw te gebruiken en te kopiëren *.vhost
, *.conf
, *.farm
en *.any
van de dispatcher/src/conf.d
en dispatcher/src/conf.dispatcher.d
mappen. Uw lokale Dispatcher-validatie en Cloud Manager-pijplijnen waren prima.
Ondertussen werden de basislijnconfiguraties Apache en Dispatcher verbeterd om verschillende redenen, zoals nieuwe functies, beveiligingsoplossingen en optimalisatie. Ze worden vrijgegeven via een nieuwere versie van Dispatcher Tools als onderdeel van de AEM as a Cloud Service release.
Nu, wanneer het bevestigen van uw project-specifieke configuraties van de Verzender tegen de recentste versie van de Hulpmiddelen van de Verzender beginnen zij te ontbreken. Om dit te verhelpen, moeten de basislijnconfiguraties door onder stappen worden bijgewerkt te gebruiken:
-
Controleren of de validatie mislukt met de nieuwste versie van Dispatcher Tools
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!
-
Werk de onveranderlijke dossiers bij gebruikend
update_maven.sh
scriptcode 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
-
De bijgewerkte onveranderbare bestanden controleren zoals
dispatcher_vhost.conf
,default.vhost
, endefault.farm
en breng indien nodig relevante wijzigingen aan in uw aangepaste bestanden die zijn afgeleid van deze bestanden. -
Wijzig de configuratie en geef deze door
$ ./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
- Nadat de wijzigingen lokaal zijn geverifieerd, past u de bijgewerkte configuratiebestanden toe
Problemen oplossen
docker_run resulteert in het bericht 'Wachten tot host.docker.internal beschikbaar is' troubleshooting-host-docker-internal
De host.docker.internal
is hostname die aan Docker wordt verstrekt die aan de gastheer oplost. Per docs.docker.com (macOS, Windows):
Vanaf Docker 18.03 moet de aanbeveling met de speciale DNS naam host.docker.internal verbinden, die aan het interne IP adres oplost dat door de gastheer wordt gebruikt
Wanneer bin/docker_run src host.docker.internal:4503 8080
resulteert in het bericht Wachten tot host.docker.internal beschikbaar is, dan:
- Zorg ervoor dat de geïnstalleerde versie van Docker 18.03 of hoger is
- U hebt mogelijk een lokale machine ingesteld die de registratie/resolutie van de
host.docker.internal
naam. Gebruik in plaats daarvan uw lokale IP.
-
Vanuit terminal uitvoeren
ifconfig
en registreer de gastheer kabinet IP adres, gewoonlijk nl0 apparaat. -
Dan uitvoeren
docker_run
het gebruiken van het gastheerIP adres:$ bin/docker_run_hot_reload.sh src <HOST IP>:4503 8080
-
Vanuit de opdrachtprompt uitvoeren
ipconfig
en registreert de host IPv4-adres van de hostcomputer. -
Dan, voer uit
docker_run
het gebruiken van dit IP adres:$ bin\docker_run src <HOST IP>:4503 8080
-
Vanuit terminal uitvoeren
ifconfig
en registreer de gastheer kabinet IP adres, gewoonlijk nl0 apparaat. -
Dan uitvoeren
docker_run
het gebruiken van het gastheerIP adres:$ bin/docker_run_hot_reload.sh src <HOST IP>:4503 8080
Voorbeeldfout
$ 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