Come utilizzare l’ambiente di sviluppo rapido

Scopri come utilizzare l'ambiente di sviluppo rapido (RDE) in AEM as a Cloud Service. Distribuisci codice e contenuti per velocizzare i cicli di sviluppo del codice quasi finale nell’RDE, dall’ambiente di sviluppo integrato (IDE) preferito.

Utilizzando il progetto WKND Sites dell'AEM, imparerai a distribuire vari artefatti dell'AEM nell'RDE eseguendo il comando install dell'AEM-RDE dall'IDE preferito.

  • Implementazione del pacchetto di codice e contenuti AEM (all, ui.apps)
  • Distribuzione del bundle OSGi e del file di configurazione
  • Distribuzione delle configurazioni di Apache e Dispatcher come file zip
  • Singoli file come HTL, .content.xml (finestra di dialogo XML) distribuzione
  • Rivedi altri comandi RDE come status, reset and delete

Prerequisito

Clona il progetto WKND Sites e aprilo nell'IDE preferito per distribuire gli artefatti AEM nell'RDE.

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

Quindi, generalo e implementalo nell’AEM-SDK locale eseguendo il seguente comando maven.

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

Distribuire gli artefatti AEM utilizzando il plug-in AEM-RDE

Verificare innanzitutto che sia installato il più recente modulo CLI aio.

Quindi, utilizzare il comando aio aem:rde:install per distribuire vari artefatti AEM. Ora che devi

Distribuisci all e dispatcher pacchetti

Un punto di partenza comune è la distribuzione dei pacchetti all e dispatcher mediante l'esecuzione dei seguenti comandi.

# 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

In caso di distribuzioni corrette, verifica il sito WKND sia nei servizi di authoring che in quelli di pubblicazione. Dovresti essere in grado di aggiungere, modificare e pubblicare il contenuto delle pagine del sito WKND.

Migliorare e distribuire un componente

Miglioriamo Hello World Component e implementiamolo nell'RDE.

  1. Apri il file XML della finestra di dialogo (.content.xml) dalla cartella ui.apps/src/main/content/jcr_root/apps/wknd/components/helloworld/_cq_dialog/

  2. Aggiungi il campo di testo Description dopo il campo di dialogo Text esistente

    code language-xml
    ...
    <description
        jcr:primaryType="nt:unstructured"
        sling:resourceType="granite/ui/components/coral/foundation/form/textfield"
        fieldLabel="Description"
        name="./description"/>
    ...
    
  3. Apri il file helloworld.html dalla cartella ui.apps/src/main/content/jcr_root/apps/wknd/components/helloworld

  4. Eseguire il rendering della proprietà Description dopo l'elemento <div> esistente della proprietà 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. Verifica le modifiche sul SDK AEM locale eseguendo la build Maven o sincronizzando i singoli file.

  6. Distribuire le modifiche all'RDE tramite il pacchetto ui.apps o distribuendo i singoli file Dialog e HTL:

    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. Verificare le modifiche nell'RDE aggiungendo o modificando Hello World Component in una pagina del sito WKND.

Rivedi le opzioni del comando install

Nell'esempio di comando di distribuzione di singoli file sopra riportato, i flag -t e -p vengono utilizzati rispettivamente per indicare il tipo e la destinazione del percorso JCR. Esaminiamo le opzioni di comando install disponibili eseguendo il comando seguente.

$ aio aem:rde:install --help

I flag sono auto-esplicativi. Il flag -s è utile per indirizzare la distribuzione solo ai servizi di authoring o pubblicazione. Utilizza il flag -t quando distribuisci i file content-file o content-xml insieme al flag -p per specificare il percorso JCR di destinazione nell'ambiente AEM RDE.

Distribuire il bundle OSGi

Per informazioni su come distribuire il bundle OSGi, miglioriamo la classe Java™ HelloWorldModel e distribuiamola all'RDE.

  1. Apri il file HelloWorldModel.java dalla cartella core/src/main/java/com/adobe/aem/guides/wknd/core/models

  2. Aggiorna il metodo init() come segue:

    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. Verificare le modifiche su AEM-SDK locale distribuendo il bundle core tramite il comando maven

  4. Distribuire le modifiche all'RDE eseguendo il comando seguente

    code language-shell
    $ cd core
    $ mvn clean package
    $ aio aem:rde:install target/aem-guides-wknd.core-2.1.3-SNAPSHOT.jar
    
  5. Verificare le modifiche nell'RDE aggiungendo o modificando Hello World Component in una pagina del sito WKND.

Distribuire la configurazione OSGi

Puoi distribuire i singoli file di configurazione o il pacchetto di configurazione completo, ad esempio:

# 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
Per installare una configurazione OSGi solo in un'istanza Autore o Publish, utilizza il flag -s.

Distribuire la configurazione di Apache o Dispatcher

Impossibile distribuire singolarmente i file di configurazione Apache o Dispatcher , ma è necessario distribuire l'intera struttura di cartelle Dispatcher sotto forma di file ZIP.

  1. Apportare la modifica desiderata nel file di configurazione del modulo dispatcher. A scopo dimostrativo, aggiornare dispatcher/src/conf.d/available_vhosts/wknd.vhost in modo da memorizzare nella cache i file html solo per 60 secondi.

    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. Verificare le modifiche localmente. Per ulteriori dettagli, vedere Eseguire Dispatcher localmente.

  3. Distribuire le modifiche apportate all'RDE eseguendo il comando seguente:

    code language-shell
    $ cd dispatcher
    $ mvn clean install
    $ aio aem:rde:install target/aem-guides-wknd.dispatcher.cloud-2.1.3-SNAPSHOT.zip
    
  4. Verificare le modifiche nell'RDE.

Distribuisci file di configurazione (YAML)

I file di configurazione CDN, delle attività di manutenzione, dell'inoltro del registro e dell'autenticazione API AEM possono essere distribuiti in RDE utilizzando il comando install. Queste configurazioni vengono gestite come file YAML nella cartella config del progetto AEM. Per ulteriori dettagli, vedere Configurazioni supportate.

Per informazioni su come distribuire i file di configurazione, è possibile migliorare il file di configurazione cdn e distribuirlo in RDE.

  1. Apri il file cdn.yaml dalla cartella config

  2. Aggiorna la configurazione desiderata, ad esempio il limite di velocità a 200 richieste al secondo

    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. Distribuire le modifiche all'RDE eseguendo il comando seguente

    code language-shell
    $ aio aem:rde:install -t env-config ./config/cdn.yaml
    
  4. Verificare le modifiche nell'RDE

Comandi aggiuntivi del plug-in AEM RDE

Esaminiamo i comandi aggiuntivi del plug-in AEM RDE per gestire e interagire con l’RDE dal computer locale.

$ 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.

Utilizzando i comandi di cui sopra, l'RDE può essere gestito dall'IDE preferito per un ciclo di sviluppo/implementazione più rapido.

Passaggio successivo

Scopri il ciclo di vita di sviluppo/distribuzione utilizzando RDE per distribuire funzionalità in modo rapido.

Risorse aggiuntive

Documentazione sui comandi RDE

Plug-in CLI di Adobe I/O Runtime per interazioni con ambienti di sviluppo rapido AEM

Configurazione del progetto AEM

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