Lokale Dispatcher-gereedschappen instellen set-up-local-dispatcher-tools
Dispatcher van Adobe Experience Manager (AEM) 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 algehele architectuur van de Experience Manager en moet deel uitmaken van de plaatselijke ontwikkelingsstructuur.
De SDK van AEM as a Cloud Service 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_maven
wordt 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 Publish QuickStart Jarop de lokale ontwikkelingsmachine.
- Naar keuze, installeer de recentste AEM verwijzingsWebsiteop de lokale dienst van AEM Publish. Deze website wordt in deze zelfstudie gebruikt om een werkende Dispatcher te visualiseren.
- Installeer en begin de recentste versie van Docker(Desktop 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)
De SDK van AEM as a Cloud Service, of AEM SDK, bevat de Dispatcher Tools die worden gebruikt om Apache HTTP Web-server met de Dispatcher-module lokaal uit te voeren voor ontwikkeling, en de compatibele QuickStart Jar.
Als AEM as a Cloud Service SDK reeds aan opstelling lokale AEM runtimeis 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 Organisatie van de Adobe moet voor AEM as a Cloud Service worden provisioned om 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-bestand van de AEM SDK
docker_run.cmd
.De versie van Dispatcher Tools verschilt van die van de AEM SDK. Zorg ervoor dat de versie van Dispatcher Tools wordt geleverd via de AEM SDK-versie die overeenkomt met de AEM as a Cloud Service-versie.
- Het gedownloade
aem-sdk-xxx.zip
bestand 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 fasenvan validator
in werking te stellen.
code language-shell |
---|
|
code language-shell |
---|
|
code language-shell |
---|
|
Dispatcher lokaal uitvoeren
AEM Dispatcher lokaal wordt 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 Publish Service van de AEM as a Cloud Service SDK, die lokaal wordt uitgevoerd op poort 4503, is beschikbaar via Dispatcher op http://localhost:8080
.
Om Dispatcher Tools tegen de configuratie van Dispatcher van een project van de Experience Manager in werking te stellen, richt aan de omslag van uw project dispatcher/src
.
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=Debug
stelt logboekregistratie voor de Dispatcher-module in op Foutopsporingsniveau- Standaardwaarde is:
Warn
- Standaardwaarde is:
REWRITE_LOG_LEVEL=Debug
stelt Apache HTTP Web server rewrite module logging to Debug level in- Standaardwaarde is:
Warn
- Standaardwaarde is:
DISP_RUN_MODE
stelt de "uitvoeringsmodus" van de Dispatcher-omgeving in en laadt de bijbehorende uitvoermodi Dispatcher-configuratiebestanden.- Heeft als standaardwaarde
dev
- Heeft als standaardwaarde
- Geldige waarden:
dev
,stage
ofprod
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 de Hulpmiddelen van Dispatcher 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 as a Cloud Service versie van de Experience Manager. De versie van AEM as a Cloud Service kan via Cloud Managerworden gevonden.
- Cloud Manager > Milieu's, per milieu dat door het wordt gespecificeerd AEM 3} etiket van de Versie
Merk op dat de versie van de Hulpmiddelen van Dispatcher niet de versie van de 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 AEM project op te nemen en lokale bevestigingen 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 AEM project in het verleden gebruikend creeerde AEM Archetype van het Project, 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.sh
manuscriptcode 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.farm
en 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.internal
verhindert. Gebruik in plaats daarvan uw lokale IP.
-
Van Eind, voer
ifconfig
uit en registreer het Gastheer inwoner IP adres, gewoonlijk het en0 apparaat. -
Voer vervolgens
docker_run
uit 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
ipconfig
uit, en registreer het 1} IPv4 Adres van de gastheer van de gastheermachine. -
Voer vervolgens
docker_run
uit met behulp van dit IP-adres:$ bin\docker_run src <HOST IP>:4503 8080
-
Van Eind, voer
ifconfig
uit en registreer het Gastheer inwoner IP adres, gewoonlijk het en0 apparaat. -
Voer vervolgens
docker_run
uit 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