URL's extern maken externalizing-urls
In AEM, is ExternalAlizer de dienst OSGi die u programmatically een middelweg (bijvoorbeeld, /path/to/my/page
) in een externe en absolute URL (bijvoorbeeld, https://www.mycompany.com/path/to/my/page
) laat omzetten door de weg met pre-gevormde DNS te bevestigen.
Omdat een instantie van AEM as a Cloud Service zijn extern zichtbare URL niet kan kennen en omdat soms een verbinding buiten het verzoekwerkingsgebied moet worden gecreeerd, verstrekt deze dienst een centrale plaats om die externe URLs te vormen en hen te bouwen.
Dit artikel verklaart hoe te om de dienst te vormen Externalzer en hoe te om het te gebruiken. Voor technische details van de dienst, zie JavaDocs.
Standaardgedrag van Externalzer en Hoe te om met voeten te treden default-behavior
Buiten het vak wijst de service Externalzer een aantal domeinid's toe aan absolute URL-voorvoegsels die overeenkomen met de AEM service-URL's die voor de omgeving zijn gegenereerd, zoals author https://author-p12345-e6789.adobeaemcloud.com
en publish https://publish-p12345-e6789.adobeaemcloud.com
. De basis-URL's voor elk van deze standaarddomeinen worden gelezen van omgevingsvariabelen die door Cloud Manager worden gedefinieerd.
Ter referentie is de standaard OSGi-configuratie voor com.day.cq.commons.impl.ExternalizerImpl.cfg.json
in feite:
{
"externalizer.domains": [
"local $[env:AEM_EXTERNALIZER_LOCAL;default=http://localhost:4502]",
"author $[env:AEM_EXTERNALIZER_AUTHOR;default=http://localhost:4502]",
"publish $[env:AEM_EXTERNALIZER_PUBLISH;default=http://localhost:4503]",
"preview $[env:AEM_EXTERNALIZER_PREVIEW;default=http://localhost:4503]"
]
}
local
, author
, preview
en publish
Externalalizer-domeinen in de OSGi-configuratie moeten met de hierboven vermelde oorspronkelijke waarden $[env:...]
worden behouden.com.day.cq.commons.impl.ExternalizerImpl.cfg.json
-bestand naar AEM as a Cloud Service waarbij een van deze 'out-of-the-box'-domeintoewijzingen wordt weggelaten, kan leiden tot onvoorspelbaar toepassingsgedrag.Om de preview
en publish
waarden met voeten te treden, gebruik de het omgevingsvariabelen van Cloud Manager zoals die in het artikel worden beschreven het Vormen OSGi voor AEM as a Cloud Serviceen het plaatsen van vooraf bepaalde AEM_CDN_DOMAIN_PUBLISH
en AEM_CDN_DOMAIN_PREVIEW
variabelen.
Het vormen van de Dienst Externalzer configuring-the-externalizer-service
De dienst ExternalAlizer laat u centraal het domein bepalen dat aan programmatically prefixmiddelwegen kan worden gebruikt. De dienst Externalzer zou slechts voor toepassingen met één enkel domein moeten worden gebruikt.
Om een domeinafbeelding voor de dienst te bepalen Externalzer:
-
Navigeer aan de Manager van de Configuratie via:
https://<host>:<port>/system/console/configMgr
-
Klik Dag CQ Verbinding Externalzer om de doos van de configuratiedialoog te openen.
note note NOTE De directe koppeling naar de configuratie is https://<host>:<port>/system/console/configMgr/com.day.cq.commons.impl.ExternalizerImpl
-
Bepaal de afbeelding van a Domeinen. Een toewijzing bestaat uit een unieke naam die in de code kan worden gebruikt om naar het domein, een ruimte en het domein te verwijzen:
<unique-name> [scheme://]server[:port][/contextpath]
Waarbij:
-
scheme
is meestal http of https, maar kan een ander protocol zijn.- Adobe raadt u aan https te gebruiken om https-koppelingen af te dwingen.
- Deze wordt gebruikt als de clientcode het schema niet overschrijft wanneer wordt gevraagd om externalisatie van een URL.
-
server
is de hostnaam (een domeinnaam of ip-adres). -
port
(optioneel) is het poortnummer. -
contextpath
(optioneel) wordt alleen ingesteld als AEM is geïnstalleerd als een webapp onder een ander contextpad.
Bijvoorbeeld:
production https://my.production.instance
De volgende toewijzingsnamen zijn vooraf gedefinieerd en moeten altijd worden ingesteld op basis van AEM:
local
- de lokale instantieauthor
- de DNS van het ontwerpsysteempublish
- de openbare naar voren gerichte website DNS
note note NOTE Met een aangepaste configuratie kunt u een nieuwe categorie toevoegen, zoals production
,staging
of zelfs externe niet-AEM systemen, zoalsmy-internal-webservice
. Het is nuttig om harde codering dergelijke URLs over verschillende plaatsen in codebase van een project te vermijden. -
-
Klik sparen om uw veranderingen te bewaren.
Het gebruiken van de Dienst Externalzer using-the-externalizer-service
Deze sectie toont een paar voorbeelden van hoe de dienst Externalzer kan worden gebruikt.
-
om een weg met het "te externaliseren"domein:
code language-java String myExternalizedUrl = externalizer.publishLink(resolver, "/my/page") + ".html";
Het veronderstellen van de domeinafbeelding:
-
publish https://www.website.com
-
myExternalizedUrl
eindigt omhoog met de waarde: -
https://www.website.com/contextpath/my/page.html
-
-
om een weg met het "auteur"domein externaliseren:
code language-java String myExternalizedUrl = externalizer.authorLink(resolver, "/my/page") + ".html";
Het veronderstellen van de domeinafbeelding:
-
author https://author.website.com
-
myExternalizedUrl
eindigt omhoog met de waarde: -
https://author.website.com/contextpath/my/page.html
-
-
om een weg met het "lokale"domein externaliseren:
code language-java String myExternalizedUrl = externalizer.externalLink(resolver, Externalizer.LOCAL, "/my/page") + ".html";
Het veronderstellen van de domeinafbeelding:
-
local https://publish-3.internal
-
myExternalizedUrl
eindigt omhoog met de waarde: -
https://publish-3.internal/contextpath/my/page.html
-