Adobe I/O Runtime-Aktionen und AEM-Ereignisse

Erfahren Sie, wie Sie AEM-Ereignisse über eine Adobe I/O Runtime-Aktion empfangen und Ereignisdetails wie Payload, Header und Metadaten überprüfen.

Adobe I/O Runtime ist eine Server-lose Plattform, die die Code-Ausführung als Reaktion auf Adobe I/O-Ereignisse ermöglicht. So können Sie ereignisgesteuerte Anwendungen erstellen, ohne an die Infrastruktur denken zu müssen.

In diesem Beispiel erstellen Sie eine Adobe I/O Runtime-Aktion, die AEM-Ereignisse empfängt und entsprechende Ereignisdetails protokolliert.
https://developer.adobe.com/runtime/docs/guides/overview/what_is_runtime/

Die allgemeinen Schritte lauten wie folgt:

  • Erstellen eines Projekts in Adobe Developer Console
  • Initialisieren des Projekts für die lokale Entwicklung
  • Konfigurieren des Projekts in Adobe Developer Console
  • Auslösen des AEM-Ereignisses und Überprüfen der Aktionsausführung

Voraussetzungen

Zum Durchführen dieses Tutorials benötigen Sie Folgendes:

IMPORTANT
AEM as a Cloud Service Eventing ist nur für registrierte Benutzende im Vorab-Release-Modus verfügbar. Um AEM Eventing in Ihrer AEM as a Cloud Service-Umgebung zu aktivieren, wenden Sie sich an das AEM-Eventing-Team.

Erstellen eines Projekts in Adobe Developer Console

Gehen Sie wie folgt vor, um ein Projekt in Adobe Developer Console zu erstellen:

  • Navigieren Sie zu Adobe Developer Console und klicken Sie auf die Schaltfläche Console (Konsole).

  • Klicken Sie im Abschnitt für den Quick Start (Schnellstart) auf die Option zur Create project from template (Projekt aus Vorlage erstellen). Wählen Sie dann im Dialogfeld zum Browse templates (Vorlagen durchsuchen) die Vorlage App Builder aus.

  • Aktualisieren Sie den Titel des Projekts und den App-Namen und fügen Sie ggf. einen Arbeitsbereich hinzu. Klicken Sie anschließend auf Save (Speichern).

    Erstellen eines Projekts in Adobe Developer Console

Initialisieren des Projekts für die lokale Entwicklung

Um die Adobe I/O Runtime-Aktion zum Projekt hinzuzufügen, müssen Sie das Projekt für die lokale Entwicklung initialisieren. Öffnen Sie ein Terminal, navigieren Sie dorthin, wo Sie das Projekt initialisieren möchten, und führen Sie die folgenden Schritte aus:

  • Initialisieren Sie das Projekt, indem Sie Folgendes ausführen:

    code language-bash
    aio app init
    
  • Wählen Sie die Organization, das im vorherigen Schritte erstellte Project und den Arbeitsbereich aus. Wählen Sie im Schritt What templates do you want to search for? die Option All Templates aus.

    Auswahl von Organisation und Projekt – Initialisieren des Projekts

  • Wählen Sie in der Vorlagenliste die Option @adobe/generator-app-excshell aus.

    Erweiterbarkeitsvorlage – Initialisieren des Projekts

  • Öffnen Sie das Projekt in Ihrer bevorzugten IDE, z. B. VSCode.

  • Die ausgewählte Erweiterbarkeitsvorlage (@adobe/generator-app-excshell) stellt eine generische Runtime-Aktion bereit. Der Code steht in der Datei src/dx-excshell-1/actions/generic/index.js. Aktualisieren Sie ihn der Einfachheit halber, protokollieren Sie die Ereignisdetails und lassen Sie eine Erfolgsantwort zurückgeben. Im nächsten Beispiel wird er jedoch erweitert, um die empfangenen AEM-Ereignisse zu verarbeiten.

    code language-javascript
    const fetch = require("node-fetch");
    const { Core } = require("@adobe/aio-sdk");
    const {
    errorResponse,
    getBearerToken,
    stringParameters,
    checkMissingRequestInputs,
    } = require("../utils");
    
    // main function that will be executed by Adobe I/O Runtime
    async function main(params) {
    // create a Logger
    const logger = Core.Logger("main", { level: params.LOG_LEVEL || "info" });
    
    try {
        // 'info' is the default level if not set
        logger.info("Calling the main action");
    
        // log parameters, only if params.LOG_LEVEL === 'debug'
        logger.debug(stringParameters(params));
    
        const response = {
        statusCode: 200,
        body: {
            message: "Received AEM Event, it will be processed in next example",
        },
        };
    
        // log the response status code
        logger.info(`${response.statusCode}: successful request`);
        return response;
    } catch (error) {
        // log any server errors
        logger.error(error);
        // return with 500
        return errorResponse(500, "server error", logger);
    }
    }
    
    exports.main = main;
    
  • Stellen Sie abschließend die aktualisierte Aktion in Adobe I/O Runtime bereit, indem Sie Folgendes ausführen:

    code language-bash
    aio app deploy
    

Konfigurieren des Projekts in Adobe Developer Console

Um AEM-Ereignisse zu empfangen und die im vorherigen Schritt erstellte Adobe I/O Runtime-Aktion auszuführen, konfigurieren Sie das Projekt in Adobe Developer Console.

  • Navigieren Sie in der Adobe Developer Console zu dem Projekt, das im vorherigen Schritt erstellt wurde, und klicken Sie darauf, um es zu öffnen. Wählen Sie den Arbeitsbereich Stage aus. (Das ist dort, wo die Aktion bereitgestellt wurde.)

  • Klicken Sie auf die Schaltfläche Add Service (Service hinzufügen) und wählen Sie die Option API aus. Wählen Sie im Modal Add an API (API hinzufügen) die Optionen Adobe Services (Adobe-Services) > I/O Management API (I/O-Management-API) aus und klicken Sie auf Next (Weiter). Führen Sie dann weitere Konfigurationsschritte aus und klicken Sie auf Save configured API (Konfigurierte API speichern).

    Hinzufügen eines Service – Konfigurieren des Projekts

  • Klicken Sie wieder auf die Schaltfläche Add Service (Service hinzufügen) und wählen Sie die Option Event (Ereignis) aus. Wählen Sie im Dialogfeld Add Events (Ereignisse hinzufügen) die Optionen Experience Cloud > AEM Sites aus und klicken Sie auf Next (Weiter). Führen Sie zusätzliche Konfigurationsschritte aus und wählen Sie die AEMCS-Instanz, Ereignistypen und andere Details aus.

  • Erweitern Sie abschließend im Schritt How to receive events (Empfangen von Ereignissen) die Option Runtime action (Runtime-Aktion) und wählen Sie die im vorherigen Schritt erstellte generische Aktion aus. Klicken Sie auf Save configured events (Konfigurierte Ereignisse speichern).

    Runtime-Aktion – Konfigurieren des Projekts

  • Überprüfen Sie die Details zur Ereignisregistrierung, auch die Registerkarte Debug Tracing (Nachverfolgung des Debuggings), und verifizieren Sie die Challenge Probe-Anfrage und -Antwort.

    Details zur Ereignisregistrierung

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 der generischen Aktion bereitgestellt werden.

Sie können die Ereignisdetails auf der Registerkarte Debug Tracing (Nachverfolgung des Debuggings) im Bereich mit den Details zur Ereignisregistrierung überprüfen.

AEM-Ereignisdetails

Nächste Schritte

Im nächsten Beispiel werden wir diese Aktion so erweitern, dass AEM-Ereignisse verarbeitet werden, ein Rückruf an den AEM Author-Service zum Abruf von Inhaltsdetails erfolgt sowie Details im Adobe I/O Runtime-Speicher gespeichert und über eine Single Page Application (SPA) angezeigt werden.

recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69