Verwenden der schnellen Entwicklungsumgebung

Erfahren Sie, wie Sie die schnelle Entwicklungsumgebung (Rapid Development Environment, RDE) in AEM as a Cloud Service verwenden. Stellen Sie Code und Inhalte für schnellere Entwicklungszyklen Ihres fast fertigen Codes aus Ihrer bevorzugten integrierten Entwicklungsumgebung (Integrated Development Environment, IDE) in der RDE bereit.

Mithilfe des AEM WKND-Sites-Projekts lernen Sie, wie Sie verschiedene AEM-Artefakte in der RDE bereitstellen, indem Sie den AEM-RDE-Befehl install aus Ihrer bevorzugten IDE ausführen.

  • Bereitstellen des AEM-Code- und -Inhaltspakets („all“, „ui.apps“)
  • Bereitstellen des OSGi-Bundles und der OSGi-Konfigurationsdatei
  • Bereitstellen der Apache- und Dispatcher-Konfigurationen als ZIP-Datei
  • Bereitstellen einzelner Dateien wie HTL, .content.xml (Dialog-XML)
  • Überprüfen anderer RDE-Befehle wie status, reset and delete

Voraussetzung

Klonen Sie das Projekt WKND Sites und öffnen Sie es in Ihrer bevorzugten IDE, um die AEM-Artefakte in der RDE bereitzustellen.

$ git clone git@github.com:adobe/aem-guides-wknd.git

Stellen Sie es nach der Build-Erstellung dann dem lokalen AEM-SDK bereit, indem Sie den folgenden Maven-Befehl ausführen.

$ cd aem-guides-wknd/
$ mvn clean package

Bereitstellen von AEM-Artefakten mit dem AEM-RDE-Plug-in

Stellen Sie zunächst sicher, dass das neueste aio CLI-Modul installiert ist.

Verwenden Sie dann den Befehl aio aem:rde:install, um verschiedene AEM-Artefakte bereitzustellen. Nun geht es um das

Bereitstellen von all- und dispatcher-Paketen

Häufig werden hierzu zunächst die all- und dispatcher-Pakete durch Ausführen der folgenden Befehle bereitgestellt.

# Install the 'all' content package (zip file)
$ aio aem:rde:install all/target/aem-guides-wknd.all-2.1.3-SNAPSHOT.zip

# Install the 'dispatcher' deployment artifact (zip file)
$ aio aem:rde:install dispatcher/target/aem-guides-wknd.dispatcher.cloud-2.1.3-SNAPSHOT.zip

Überprüfen Sie bei erfolgreicher Bereitstellung die WKND-Site im Author- und Publish-Service. Sie sollten in der Lage sein, den Inhalt auf den Seiten der WKND-Site hinzuzufügen, zu bearbeiten und zu veröffentlichen.

Erweitern und Bereitstellen einer Komponente

Erweitern wir nun die Komponente Hello World Component und stellen diese in der RDE bereit.

  1. Öffnen Sie die Dialog-XML-Datei (.content.xml) im Ordner ui.apps/src/main/content/jcr_root/apps/wknd/components/helloworld/_cq_dialog/.

  2. Fügen Sie das Textfeld Description nach dem vorhandenen Dialogfeld Text hinzu.

    code language-xml
    ...
    <description
        jcr:primaryType="nt:unstructured"
        sling:resourceType="granite/ui/components/coral/foundation/form/textfield"
        fieldLabel="Description"
        name="./description"/>
    ...
    
  3. Öffnen Sie die Datei helloworld.html im Ordner ui.apps/src/main/content/jcr_root/apps/wknd/components/helloworld.

  4. Rendern Sie die Eigenschaft Description nach dem vorhandenen <div>-Element der Eigenschaft Text.

    code language-html
    ...
    <div class="cmp-helloworld__item" data-sly-test="${properties.description}">
        <p class="cmp-helloworld__item-label">Description property:</p>
        <pre class="cmp-helloworld__item-output" data-cmp-hook-helloworld="property">${properties.description}</pre>
    </div>
    ...
    
  5. Überprüfen Sie die Änderungen im lokalen AEM-SDK, indem Sie den Maven-Build ausführen oder einzelne Dateien synchronisieren.

  6. Stellen Sie die Änderungen in der RDE über das Paket ui.apps oder durch Bereitstellung der einzelnen Dialog- und HTL-Dateien bereit:

    code language-shell
    # Using 'ui.apps' package
    
    $ cd ui.apps
    $ mvn clean package
    $ aio aem:rde:install target/aem-guides-wknd.ui.apps-2.1.3-SNAPSHOT.zip
    
    # Or by deploying the individual HTL and Dialog XML
    
    # HTL file
    $ aio aem:rde:install ui.apps/src/main/content/jcr_root/apps/wknd/components/helloworld/helloworld.html -t content-file -p /apps/wknd/components/helloworld/helloworld.html
    
    # Dialog XML
    $ aio aem:rde:install ui.apps/src/main/content/jcr_root/apps/wknd/components/helloworld/_cq_dialog/.content.xml -t content-xml -p /apps/wknd/components/helloworld/_cq_dialog/.content.xml
    
  7. Überprüfen Sie Änderungen in der RDE, indem Sie die Hello World Component auf einer Seite der WKND-Site hinzufügen oder bearbeiten.

Überprüfen der install-Befehlsoptionen

Im obigen Beispiel für den Befehl zur Bereitstellung einer einzelnen Datei werden die Flags -t und -p verwendet, um den Typ bzw. das Ziel des JCR-Pfads anzugeben. Sehen wir uns nun die verfügbaren install-Befehlsoptionen an, indem wir folgenden Befehl ausführen.

$ aio aem:rde:install --help

Die Flags sind selbsterklärend. Das Flag -s ist nützlich, um die Bereitstellung nur für die Author- oder Publish-Services durchzuführen. Verwenden Sie das Flag -t beim Bereitstellen der content-file- oder content-xml-Dateien zusammen mit dem Flag -p, um den JCR-Zielpfad in der AEM-RDE-Umgebung anzugeben.

Bereitstellen des OSGi-Bundles

Um zu erfahren, wie Sie das OSGi-Bundle bereitstellen, erweitern wir die HelloWorldModel-Java™-Klasse und stellen sie in der RDE bereit.

  1. Öffnen Sie die Datei HelloWorldModel.java im Ordner core/src/main/java/com/adobe/aem/guides/wknd/core/models.

  2. Aktualisieren Sie die init()-Methode wie folgt:

    code language-java
    ...
    message = "Hello World!\n"
        + "Resource type is: " + resourceType + "\n"
        + "Current page is:  " + currentPagePath + "\n"
        + "Changes deployed via RDE, lets try faster dev cycles";
    ...
    
  3. Überprüfen Sie die Änderungen im lokalen AEM-SDK, indem Sie das core-Bundle per Maven-Befehl bereitstellen.

  4. Stellen Sie die Änderungen in der RDE bereit, indem Sie den folgenden Befehl ausführen

    code language-shell
    $ cd core
    $ mvn clean package
    $ aio aem:rde:install target/aem-guides-wknd.core-2.1.3-SNAPSHOT.jar
    
  5. Überprüfen Sie Änderungen in der RDE, indem Sie die Hello World Component auf einer Seite der WKND-Site hinzufügen oder bearbeiten.

Bereitstellen der OSGi-Konfiguration

Sie können die einzelnen Konfigurationsdateien oder das vollständige Konfigurationspaket bereitstellen, z. B.:

# Deploy individual config file
$ aio aem:rde:install ui.config/src/main/content/jcr_root/apps/wknd/osgiconfig/config/org.apache.sling.commons.log.LogManager.factory.config~wknd.cfg.json

# Or deploy the complete config package
$ cd ui.config
$ mvn clean package
$ aio aem:rde:install target/aem-guides-wknd.ui.config-2.1.3-SNAPSHOT.zip
TIP
Um eine OSGi-Konfiguration nur in einer Autoren- oder Veröffentlichungsinstanz zu installieren, verwenden Sie das Flag -s.

Bereitstellen der Apache- oder Dispatcher-Konfiguration

Die Apache- oder Dispatcher-Konfigurationsdateien können nicht einzeln bereitgestellt werden, sondern die gesamte Dispatcher-Ordnerstruktur muss in Form einer ZIP-Datei bereitgestellt werden.

  1. Nehmen Sie eine gewünschte Änderung in der Konfigurationsdatei des dispatcher-Moduls zu Demozwecken vor und aktualisieren Sie dispatcher/src/conf.d/available_vhosts/wknd.vhost, um die html-Dateien für nur 60 Sekunden zwischenzuspeichern.

    code language-none
    ...
    <LocationMatch "^/content/.*\.html$">
        Header unset Cache-Control
        Header always set Cache-Control "max-age=60,stale-while-revalidate=60" "expr=%{REQUEST_STATUS} < 400"
        Header always set Surrogate-Control "stale-while-revalidate=43200,stale-if-error=43200" "expr=%{REQUEST_STATUS} < 400"
        Header set Age 0
    </LocationMatch>
    ...
    
  2. Überprüfen Sie die Änderungen lokal. Weitere Informationen finden unter Lokales Ausführen des Dispatchers.

  3. Stellen Sie die Änderungen in der RDE bereit, indem Sie den folgenden Befehl ausführen:

    code language-shell
    $ cd dispatcher
    $ mvn clean install
    $ aio aem:rde:install target/aem-guides-wknd.dispatcher.cloud-2.1.3-SNAPSHOT.zip
    
  4. Überprüfen Sie die Änderungen in der RDE.

Bereitstellen von Konfigurationsdateien (YAML)

Die Konfigurationsdateien für CDN, Wartungsaufgaben, Protokollweiterleitung und AEM-API-Authentifizierung können mit dem Befehl install in der RDE bereitgestellt werden. Diese Konfigurationen werden als YAML-Dateien im config-Ordner des AEM-Projekts verwaltet. Weitere Informationen finden Sie unter Unterstützte Konfigurationen.

Um zu erfahren, wie Sie die Konfigurationsdateien bereitstellen, erweitern wir die cdn-Konfigurationsdatei und stellen sie in der RDE bereit.

  1. Öffnen Sie die Datei cdn.yaml im Ordner config.

  2. Aktualisieren Sie die gewünschte Konfiguration. Aktualisieren Sie beispielsweise die Ratenbegrenzung auf 200 Anfragen pro Sekunde.

    code language-yaml
    kind: "CDN"
    version: "1"
    metadata:
      envTypes: ["dev", "stage", "prod"]
    data:
      trafficFilters:
        rules:
        #  Block client for 5m when it exceeds an average of 100 req/sec to origin on a time window of 10sec
        - name: limit-origin-requests-client-ip
          when:
            reqProperty: tier
            equals: 'publish'
          rateLimit:
            limit: 200 # updated rate limit
            window: 10
            count: fetches
            penalty: 300
            groupBy:
              - reqProperty: clientIp
          action: log
    ...
    
  3. Stellen Sie die Änderungen in der RDE bereit, indem Sie den folgenden Befehl ausführen

    code language-shell
    $ aio aem:rde:install -t env-config ./config/cdn.yaml
    
  4. Überprüfen von Änderungen in der RDE

Weitere AEM-RDE-Plug-in-Befehle

Sehen wir uns nun weitere AEM-RDE-Plug-in-Befehle an, mit denen Sie die RDE von Ihrem lokalen Computer aus verwalten und mit der RDE interagieren können.

$ aio aem:rde --help
Interact with RapidDev Environments.

USAGE
$ aio aem rde COMMAND

COMMANDS
aem rde delete   Delete bundles and configs from the current rde.
aem rde history  Get a list of the updates done to the current rde.
aem rde install  Install/update bundles, configs, and content-packages.
aem rde reset    Reset the RDE
aem rde restart  Restart the author and publish of an RDE
aem rde status   Get a list of the bundles and configs deployed to the current rde.

Mithilfe der oben genannten Befehle kann Ihre RDE von Ihrer bevorzugten IDE aus verwaltet werden, um den Lebenszyklus der Entwicklung/Bereitstellung zu beschleunigen.

Nächster Schritt

Erfahren Sie mehr über den Entwicklungs-/Bereitstellungslebenszyklus mit der RDE, um Funktionen schnell bereitzustellen.

Zusätzliche Ressourcen

Dokumentation zu RDE-Befehlen

Adobe I/O Runtime-CLI-Plug-in für Interaktionen mit schnellen Entwicklungsumgebungen von AEM

Einrichten von AEM-Projekten

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