Lokale Dispatcher-gereedschappen instellen set-up-local-dispatcher-tools
Adobe Experience Manager (AEM)'s Dispatcher is een Apache HTTP Web server module die een veiligheid en prestatieslaag tussen CDN en AEM Publish rij verstrekt. Dispatcher is een integraal onderdeel van de algemene Experience Manager-architectuur en moet deel uitmaken van de plaatselijke ontwikkelingsinstellingen.
De AEM as a Cloud Service SDK bevat de aanbevolen versie van Dispatcher Tools waarmee u het valideren en het lokaal simuleren van Dispatcher kunt configureren. Dispatcher Tools bestaat uit:
- een basislijnset van Apache HTTP Web server- en Dispatcher-configuratiebestanden op
.../dispatcher-sdk-x.x.x/src - een CLI-hulpprogramma voor configuratievalidatie, dat zich bevindt op
.../dispatcher-sdk-x.x.x/bin/validate - een CLI-hulpprogramma voor configuratiegeneratie, dat zich bevindt op
.../dispatcher-sdk-x.x.x/bin/validator - een CLI-hulpprogramma voor configuratieimplementatie, dat zich bevindt op
.../dispatcher-sdk-x.x.x/bin/docker_run - een onveranderlijke configuratiedossiers die CLI hulpmiddel beschrijven, die bij
.../dispatcher-sdk-x.x.x/bin/update_mavenwordt gevestigd - een Docker-afbeelding die Apache HTTP Web-server uitvoert met de Dispatcher-module
~ wordt gebruikt als steno voor de gebruikerslijst. In Windows is dit het equivalent van %HOMEPATH% .
Vereisten
- Windows-gebruikers moeten Windows 10 Professional gebruiken (of een versie die Docker ondersteunt)
- Installeer Experience Manager publiceert QuickStart Jar op de lokale ontwikkelingsmachine.
- Naar keuze, installeer de recentste de verwijzingsWebsite van AEM op de lokale publicatiedienst van AEM. Deze website wordt in deze zelfstudie gebruikt om een werkende Dispatcher te visualiseren.
- Installeer en begin de recentste versie van Docker (de Desktop van de Docker 2.2.0.5 +/de Motor van de Docker v19.03.9+) op de lokale ontwikkelingsmachine.
Download de Dispatcher Tools (als onderdeel van de AEM SDK)
AEM as a Cloud Service SDK, of AEM SDK, bevat de Dispatcher Tools die worden gebruikt om Apache HTTP Web-server met de module van Dispatcher plaatselijk voor ontwikkeling in werking te stellen, en compatibele Jar QuickStart.
Als AEM as a Cloud Service SDK reeds aan opstelling lokale runtime van AEM is gedownload, te hoeven het niet opnieuw worden gedownload.
- Meld u aan 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 recentste AEM SDK resultaatrij om te downloaden
De Dispatcher-gereedschappen extraheren uit het zip van AEM SDK
docker_run.cmd .De versie van Dispatcher Tools verschilt van die van AEM SDK. Zorg ervoor dat de versie van Dispatcher Tools beschikbaar is via de AEM SDK-versie die overeenkomt met de AEM as a Cloud Service-versie.
- Het gedownloade
aem-sdk-xxx.zipbestand uitpakken - Pak de Dispatcher-gereedschappen uit in
~/aem-sdk/dispatcher
| code language-shell |
|---|
|
aem-sdk-dispatcher-tools-x.x.x-windows.zip uit in C:\Users\<My User>\aem-sdk\dispatcher (maak indien nodig ontbrekende mappen).| code language-shell |
|---|
|
Alle hieronder uitgegeven bevelen veronderstellen dat de huidige het werk folder de het uitbreiden inhoud van de Hulpmiddelen van Dispatcher bevat.
Deze video gebruikt macOS voor illustratieve doeleinden. De gelijkwaardige bevelen Windows/Linux kunnen worden gebruikt om gelijkaardige resultaten te 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 naar de map dispatcher/src te worden gekopieerd als ze 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 kunnen de Dispatcher- en Apache Web-serverconfiguraties (via httpd -t) worden gevalideerd met behulp van het validate -script (niet te verwarren met het validator -uitvoerbare bestand). Het validate manuscript verstrekt een geschikte manier om de drie fasen van validator in werking te stellen.
| code language-shell |
|---|
|
| code language-shell |
|---|
|
| code language-shell |
|---|
|
Dispatcher lokaal uitvoeren
AEM Dispatcher wordt lokaal uitgevoerd met Docker op basis van de configuratiebestanden van de Dispatcher- en Apache-webserver. src
| code language-shell |
|---|
|
Het uitvoerbare bestand van docker_run_hot_reload heeft de voorkeur boven docker_run als het configuratiebestanden opnieuw laadt terwijl deze worden gewijzigd, zonder dat het bestand handmatig moet worden afgesloten en opnieuw moet worden gestart docker_run . U kunt docker_run ook gebruiken, maar hiervoor moet docker_run handmatig worden beëindigd en opnieuw worden gestart wanneer configuratiebestanden worden gewijzigd.
| code language-shell |
|---|
|
| code language-shell |
|---|
|
Het uitvoerbare bestand van docker_run_hot_reload heeft de voorkeur boven docker_run als het configuratiebestanden opnieuw laadt terwijl deze worden gewijzigd, zonder dat het bestand handmatig moet worden afgesloten en opnieuw moet worden gestart docker_run . U kunt docker_run ook gebruiken, maar hiervoor moet docker_run handmatig worden beëindigd en opnieuw worden gestart wanneer configuratiebestanden worden gewijzigd.
<aem-publish-host> kan aan host.docker.internal worden geplaatst, verstrekt een speciale DNS naamDocker in de container die aan IP van de gastheermachine oplost. Als host.docker.internal niet oplost, te zien gelieve de het oplossen van problemen hieronder sectie.
U kunt bijvoorbeeld de Dispatcher Docker-container starten met de standaardconfiguratiebestanden van de Dispatcher Tools:
Start de Dispatcher Docker-container die het pad naar de SDR-configuratiemap van Dispatcher bevat:
| code language-shell |
|---|
|
| code language-shell |
|---|
|
| code language-shell |
|---|
|
De publicatieservice van AEM as a Cloud Service SDK, die lokaal wordt uitgevoerd op poort 4503, is beschikbaar via Dispatcher op http://localhost:8080 .
Als u Dispatcher Tools wilt uitvoeren in combinatie met de Dispatcher-configuratie van een Experience Manager-project, wijst u naar de map dispatcher/src van uw project.
| code language-shell |
|---|
|
| code language-shell |
|---|
|
| code language-shell |
|---|
|
Dispatcher Tools-logboeken
Dispatcher-logboeken zijn handig tijdens lokale ontwikkeling om te begrijpen of en waarom HTTP-aanvragen worden geblokkeerd. U kunt het logniveau instellen door de uitvoering van docker_run vooraf te bepalen met omgevingsparameters.
Logboeken van Dispatcher Tools worden uitgestraald naar de standaard-out wanneer docker_run wordt uitgevoerd.
Handige parameters voor foutopsporing in Dispatcher zijn:
DISP_LOG_LEVEL=Debugstelt logboekregistratie voor de Dispatcher-module in op Foutopsporingsniveau- Standaardwaarde is:
Warn
- Standaardwaarde is:
REWRITE_LOG_LEVEL=Debugstelt Apache HTTP Web server rewrite module logging to Debug level in- Standaardwaarde is:
Warn
- Standaardwaarde is:
DISP_RUN_MODEstelt de "uitvoeringsmodus" van de Dispatcher-omgeving in en laadt de bijbehorende uitvoermodi Dispatcher-configuratiebestanden.- Heeft als standaardwaarde
dev
- Heeft als standaardwaarde
- Geldige waarden:
dev,stageofprod
Een of meerdere parameters, kan worden doorgegeven aan docker_run
| code language-shell |
|---|
|
| code language-shell |
|---|
|
| code language-shell |
|---|
|
Toegang tot logbestanden
Apache-webserver en AEM Dispatcher-logbestanden zijn rechtstreeks toegankelijk in de Docker-container:
Wanneer moet u Dispatcher Tools bijwerken? dispatcher-tools-version
De versies van Dispatcher Tools stijgen minder vaak dan de Experience Manager, en daarom vereisen de Hulpmiddelen van Dispatcher minder updates in de lokale ontwikkelomgeving.
De aanbevolen versie van Dispatcher Tools is de versie die wordt meegeleverd bij de AEM as a Cloud Service SDK die overeenkomt met de Experience Manager as a Cloud Service-versie. De versie van AEM as a Cloud Service kan via Cloud Manager worden gevonden.
- Cloud Manager > Milieu's, per milieu dat door het wordt gespecificeerd van de Versie van AEM etiket
Merk op dat de versie van de Hulpmiddelen van Dispatcher niet de versie van Experience Manager aanpast.
De basislijnset van Apache- en Dispatcher-configuraties bijwerken
De basisset 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 project van AEM op te nemen en lokale bevestiging en de pijpleidingsmislukkingen van Cloud Manager te vermijden. Werk deze bij met het script update_maven.sh in de map .../dispatcher-sdk-x.x.x/bin .
Deze video gebruikt macOS voor illustratieve doeleinden. De gelijkwaardige bevelen Windows/Linux kunnen worden gebruikt om gelijkaardige resultaten te bereiken.
Laten we veronderstellen u een project van AEM in het verleden gebruikend Archetype van het Project van AEM creeerde, waren de basislijn Apache en de configuraties van Dispatcher huidig. Met behulp van deze basislijnconfiguraties zijn uw projectspecifieke configuraties gemaakt door de bestanden als *.vhost , *.conf , *.farm en *.any uit de mappen dispatcher/src/conf.d en dispatcher/src/conf.dispatcher.d opnieuw te gebruiken en te kopiëren. Je lokale Dispatcher-validatie en Cloud Manager-pijpleidingen werkten 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.
Wanneer u nu uw projectspecifieke Dispatcher-configuraties valideert op basis van de nieuwste versie van Dispatcher Tools, mislukt deze versie. 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 het
update_maven.shmanuscriptcode 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 -
Verifieer de bijgewerkte onveranderlijke dossiers zoals
dispatcher_vhost.conf,default.vhost, endefault.farmen breng indien nodig relevante veranderingen in uw douanedossiers aan die uit deze dossiers worden afgeleid. -
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
host.docker.internal is een hostnaam die aan Docker wordt verstrekt die aan de gastheer oplost. Per docs.docker.com ( macOS , Vensters ):
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 in het bericht het Wachten tot host.docker.internal beschikbaar is resulteert, dan:
- Zorg ervoor dat de geïnstalleerde versie van Docker 18.03 of hoger is
- U hebt mogelijk een lokale computer ingesteld die de registratie/resolutie van de naam
host.docker.internalverhindert. Gebruik in plaats daarvan uw lokale IP.
-
Van Eind, voer
ifconfiguit en registreer het Gastheer inwoner IP adres, gewoonlijk het en0 apparaat. -
Voer vervolgens
docker_runuit met behulp van het IP-adres van de host:$ bin/docker_run_hot_reload.sh src <HOST IP>:4503 8080
-
Van de Herinnering van het Bevel, voer
ipconfiguit, en registreer het 1} IPv4 Adres van de gastheer van de gastheermachine. -
Voer vervolgens
docker_runuit met behulp van dit IP-adres:$ bin\docker_run src <HOST IP>:4503 8080
-
Van Eind, voer
ifconfiguit en registreer het Gastheer inwoner IP adres, gewoonlijk het en0 apparaat. -
Voer vervolgens
docker_runuit met behulp van het IP-adres van de host:$ 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