Webhooks und AEM-Ereignisse
Erfahren Sie, wie Sie AEM-Ereignisse über einen Webhook empfangen und die Ereignisdetails wie Payload, Header und Metadaten überprüfen.
In diesem Beispiel wird ein von Adobe bereitgestellter gehosteter Webhook verwendet, wodurch Sie AEM-Ereignisse empfangen können, ohne einen eigenen Webhook einrichten zu müssen. Dieser von Adobe bereitgestellte Webhook wird auf Glitch gehostet, einer Plattform, die eine Web-basierte Umgebung zum Erstellen und Bereitstellen von Web-Anwendungen bietet. Wenn Sie dies vorziehen, können Sie jedoch auch Ihren eigenen Webhook verwenden.
Voraussetzungen
Zum Durchführen dieses Tutorials benötigen Sie Folgendes:
-
AEM as a Cloud Service-Umgebung, in der AEM Eventing aktiviert ist.
-
Für AEM-Ereignisse konfiguriertes Adobe Developer Console-Projekt.
Zugriff auf den Webhook
Gehen Sie wie folgt vor, um auf den von Adobe bereitgestellten Webhook zuzugreifen:
-
Stellen Sie sicher, dass Sie in einer neuen Browser-Registerkarte auf den von Glitch gehosteten Webhook zugreifen können.
-
Geben Sie einen eindeutigen Namen für Ihren Webhook ein, beispielsweise
<YOUR_PETS_NAME>-aem-eventing
, und klicken Sie auf Verbinden. Auf dem Bildschirm sollte die MeldungConnected to: ${YOUR-WEBHOOK-URL}
angezeigt werden. -
Notieren Sie sich die Webhook-URL. Sie benötigen sie später in diesem Tutorial.
Konfigurieren des Webhooks im Adobe Developer Console-Projekt
Gehen Sie wie folgt vor, um AEM-Ereignisse über die oben aufgeführte Webhook-URL zu empfangen:
-
Navigieren Sie in der Adobe Developer Console zu Ihrem Projekt und klicken Sie darauf, um es zu öffnen.
-
Klicken Sie im Bereich Products & Services (Produkte und Services) auf die Auslassungspunkte
...
neben der gewünschten Ereigniskarte, die AEM-Ereignisse an den Webhook senden soll, und wählen Sie Edit (Bearbeiten). -
Das Dialogfeld Configure event registration (Ereignisregistrierung konfigurieren) wird geöffnet. Klicken Sie auf Next (Weiter), um mit dem Schritt How to receive events (Empfangen von Ereignissen) fortzufahren.
-
Wählen Sie im Schritt How to receive events (Empfangen von Ereignissen) die Option Webhook aus und fügen Sie die Webhook-URL ein, die Sie zuvor im von Glitch gehosteten Webhook kopiert haben. Klicken Sie auf Save configured events (Konfigurierte Ereignisse speichern).
-
Auf der Glitch-Webhook-Seite sollte eine GET-Anfrage angezeigt werden. Dabei handelt es sich um eine von den Adobe I/O-Ereignissen gesendete Challenge-Anfrage zum Überprüfen der Webhook-URL.
Auslösen von AEM-Ereignissen
Gehen Sie wie folgt vor, um AEM-Ereignisse aus Ihrer AEM as a Cloud Service-Umgebung auszulösen, die im oben aufgeführten Adobe Developer Console-Projekt registriert wurde:
-
Greifen Sie über Cloud Manager auf Ihre AEM as a Cloud Service-Autorenumgebung zu und melden Sie sich dort an.
-
Abhängig von Ihren abonnierten Ereignissen können Sie ein Inhaltsfragment erstellen, aktualisieren, löschen, veröffentlichen oder die Veröffentlichung rückgängig machen.
Überprüfen von Ereignisdetails
Nachdem Sie die oben genannten Schritte ausgeführt haben, sollten die AEM-Ereignisse dem Webhook bereitgestellt werden. Suchen Sie auf der Glitch-Webhook-Seite nach der POST-Anfrage.
Im Folgenden finden Sie wichtige Details zur POST-Anfrage:
-
path:
/webhook/${YOUR-WEBHOOK-URL}
, beispielsweise/webhook/AdobeTM-aem-eventing
-
headers: Von Adobe I/O-Ereignissen gesendete Anfrage-Header, z. B.:
{
"connection": "close",
"x-forwarded-for": "34.205.178.127,::ffff:10.10.10.136,::ffff:10.10.84.114",
"x-forwarded-proto": "https,http,http",
"x-forwarded-port": "443,80,80",
"host": "lovely-ancient-coaster.glitch.me",
"content-length": "826",
"x-adobe-public-key2-path": "/prod/keys/pub-key-IkpzhSpTw0.pem",
"x-adobe-delivery-id": "18abfb47-d24a-4684-ade8-f442a3444033",
"x-adobe-provider": "aemsites_7ABB3E6A5A7491460A495D61@AdobeOrg_acct-aem-p46652-e1074060@adobe.com",
"x-adobe-public-key1-path": "/prod/keys/pub-key-Ptc2pD9vT9.pem",
"x-adobe-event-id": "a0f3fb7d-b02c-4612-aac6-e472b80af793",
"x-adobe-event-code": "aem.sites.contentFragment.modified",
"user-agent": "Adobe/1.0",
"x-adobe-digital-signature-2": "zGLso15+6PV6X6763/x6WqgxDlEXpkv5ty8q4njaq3aUngAI9VCcYonbScEjljRluzjZ05uMJmRfNxwjj60syxEJPuc0dpmMU635gfna7I4T7IaHs496wx4m2E5mvCM+aKbNQ+NPOutyTqI8Ovq29P2P87GIgMlGhAtOaxRVGNc6ksBxc2tCWbrKUhW8hPJ0sHphU499dN4TT32xrZaiRw4akT3M/hYydsA8dcWpJ7S4dpuDS21YyDHAB8s9Dawtr3fyPEyLgZzpwZDfCqQ8gdSCGqKscE4pScwqPkKOYCHDnBvDZVe583jhcZbHGjk7Ncp/FrgQk7avWsk5XlzcuA==",
"x-adobe-digital-signature-1": "QD7THFJ1vmJqD/BatIpzO6+ACQ9cSKPR7XVaW0LI7cN/xs7ucyri6dmkerOPe9EJpjGoqCg8rxWedrIRQB3lgVskChbHH3Ujx5YG0aTQLSd1Lsn5CFbW1U0l0GqId9Cnd6MccrqSznZXcdW1rMFuRk8+gqwabBifSaLbu3r30G5hmqQd72VtiYTE4m23O3jYIMiv62pRP+a+p4NjNj1XG320uRSry+BPniTjDJ6oN/Ng7aUEKML8idZ/ZTqeh/rJSrVO95UryUolFDRwDkRn5zKonbvhSLAeXzaPhvimWUHtldq9M1WTyRMpsBk8BRzaklxlq+woJ2UjYPUIEzjotw==",
"accept-encoding": "deflate,compress,identity",
"content-type": "application/cloudevents+json; charset=UTF-8",
"x-forwarded-host": "lovely-ancient-coaster.glitch.me",
"traceparent": "00-c27558588d994f169186ca6a3c6607d4-a7e7ee36625488d4-01"
}
- body/payload: Anfragentext, der von den Adobe I/O-Ereignissen gesendet wird, z. B.:
{
"specversion": "1.0",
"type": "aem.sites.contentFragment.modified",
"source": "acct:aem-p46652-e1074060@adobe.com",
"id": "bf922a49-9db4-4377-baf4-70e96e15c45f",
"time": "2023-12-12T20:36:43.583228Z",
"dataschema": "https://ns.adobe.com/xdm/aem/sites/events/content-fragment-modified.json",
"datacontenttype": "application/json",
"data": {
"user": {
"imsUserId": "933E1F8A631CAA0F0A495E53@80761f6e631c0c7d495fb3.e",
"principalId": "xxx@adobe.com",
"displayName": "First LastName",
},
"path": "/content/dam/wknd-shared/en/adventures/beervana-portland/beervana-in-portland",
"model": {
"id": "/conf/wknd-shared/settings/dam/cfm/models/adventure"
},
"id": "9a2d3e6a-efda-4079-a86e-0ef2ede692da",
"properties": [
{
"name": "groupSize",
"changeType": "modified"
}
]
},
"event_id": "a0f3fb7d-b02c-4612-aac6-e472b80af793",
"recipient_client_id": "f51ea733ba404db299fefbf285dc1c42"
}
Sie können sehen, dass die AEM-Ereignisdetails alle notwendigen Informationen enthalten, um das Ereignis im Webhook zu verarbeiten. Beispielsweise Ereignistyp (type
), Ereignisquelle (source
), Ereignis-ID (event_id
), Ereigniszeit (time
) und Ereignisdaten (data
).
Zusätzliche Ressourcen
- Quell-Code für den Glitch-Webhook steht als Referenz zur Verfügung.