신속한 개발 환경 사용 방법
AEM as a Cloud Service의 RDE(Rapid Development Environment)를 사용하는 방법을 알아봅니다. 즐겨찾는 IDE(통합 개발 환경)에서 최종 코드에 대한 개발 주기를 단축하기 위해 코드 및 콘텐츠를 배포합니다.
AEM WKND Sites 프로젝트를 사용하여 즐겨 찾는 IDE에서 AEM-RDE의 install 명령을 실행하여 다양한 AEM 아티팩트를 RDE에 배포하는 방법에 대해 알아봅니다.
- AEM 코드 및 컨텐츠 패키지(모두, ui.apps) 배포
- OSGi 번들 및 구성 파일 배포
- zip 파일로 Apache 및 Dispatcher 구성 배포
- HTL,
.content.xml(대화 상자 XML) 배포와 같은 개별 파일 status, reset and delete과(와) 같은 다른 RDE 명령 검토
전제 조건
WKND Sites 프로젝트를 복제하고 즐겨찾는 IDE에서 열어 AEM 아티팩트를 RDE에 배포합니다.
$ git clone git@github.com:adobe/aem-guides-wknd.git
그런 다음 다음 다음 maven 명령을 실행하여 로컬 AEM-SDK에 빌드하고 배포합니다.
$ cd aem-guides-wknd/
$ mvn clean package
AEM-RDE 플러그인을 사용하여 AEM 아티팩트 배포
먼저 최신 aio CLI 모듈이 설치되어 있는지 확인합니다.
그런 다음 aio aem:rde:install 명령을 사용하여 다양한 AEM 아티팩트를 배포합니다.
all 및 dispatcher 패키지 배포
일반적인 시작 지점은 먼저 다음 명령을 실행하여 all 및 dispatcher 패키지를 배포하는 것입니다.
# 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
배포가 성공하면 작성 및 게시 서비스 모두에서 WKND 사이트를 확인하십시오. WKND 사이트 페이지에서 콘텐츠를 추가 및 편집하고 게시할 수 있어야 합니다.
구성 요소 개선 및 배포
Hello World Component을(를) 향상하고 RDE에 배포하겠습니다.
-
.content.xml폴더에서 대화 상자 XML(ui.apps/src/main/content/jcr_root/apps/wknd/components/helloworld/_cq_dialog/) 파일을 엽니다. -
기존
Description대화 상자 필드 뒤에Text텍스트 필드 추가code language-xml ... <description jcr:primaryType="nt:unstructured" sling:resourceType="granite/ui/components/coral/foundation/form/textfield" fieldLabel="Description" name="./description"/> ... -
helloworld.html폴더에서ui.apps/src/main/content/jcr_root/apps/wknd/components/helloworld파일 열기 -
Description속성의 기존<div>요소 뒤에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> ... -
Maven 빌드를 수행하거나 개별 파일을 동기화하여 로컬 AEM SDK의 변경 사항을 확인합니다.
-
ui.apps패키지를 통해 또는 개별 대화 상자 및 HTL 파일을 배포하여 변경 내용을 RDE에 배포합니다.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 -
WKND 사이트 페이지에서
Hello World Component을(를) 추가하거나 편집하여 RDE의 변경 사항을 확인하십시오.
install 명령 옵션 검토
위의 개별 파일 배포 명령 예제에서 -t 및 -p 플래그는 각각 JCR 경로의 유형 및 대상을 나타내는 데 사용됩니다. 다음 명령을 실행하여 사용 가능한 install 명령 옵션을 검토해 보겠습니다.
$ aio aem:rde:install --help
플래그는 설명이 따로 필요하지 않으므로 -s 플래그는 작성자 또는 게시 서비스에만 배포를 타깃팅하는 데 유용합니다. -t 플래그와 함께 content-file 또는 content-xml 파일을 배포할 때 -p 플래그를 사용하여 AEM RDE 환경에서 대상 JCR 경로를 지정하십시오.
OSGi 번들 배포
OSGi 번들을 배포하는 방법에 대해 알아보려면 HelloWorldModel Java™ 클래스를 개선하고 RDE에 배포해 보겠습니다.
-
HelloWorldModel.java폴더에서core/src/main/java/com/adobe/aem/guides/wknd/core/models파일 열기 -
다음과 같이
init()메서드를 업데이트합니다.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"; ... -
Maven 명령을 통해
core번들을 배포하여 로컬 AEM-SDK의 변경 사항을 확인합니다. -
다음 명령을 실행하여 변경 사항을 RDE에 배포합니다
code language-shell $ cd core $ mvn clean package $ aio aem:rde:install target/aem-guides-wknd.core-2.1.3-SNAPSHOT.jar -
WKND 사이트 페이지에서
Hello World Component을(를) 추가하거나 편집하여 RDE의 변경 사항을 확인하십시오.
OSGi 구성 배포
다음과 같은 개별 구성 파일 또는 전체 구성 패키지를 배포할 수 있습니다.
# 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
-s 플래그를 사용하십시오.Apache 또는 Dispatcher 구성 배포
Apache 또는 Dispatcher 구성 파일 을(를) 개별적으로 배포할 수 없지만 전체 Dispatcher 폴더 구조는 ZIP 파일 형태로 배포해야 합니다.
-
dispatcher모듈의 구성 파일을 원하는 대로 변경하고, 데모용으로dispatcher/src/conf.d/available_vhosts/wknd.vhost을(를) 업데이트하여html파일을 60초 동안만 캐시합니다.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> ... -
변경 내용을 로컬에서 확인합니다. 자세한 내용은 로컬에서 Dispatcher 실행을 참조하십시오.
-
다음 명령을 실행하여 변경 사항을 RDE에 배포합니다.
code language-shell $ cd dispatcher $ mvn clean install $ aio aem:rde:install target/aem-guides-wknd.dispatcher.cloud-2.1.3-SNAPSHOT.zip -
RDE에서 변경 사항을 확인합니다.
YAML(구성) 파일 배포
CDN, 유지 관리 작업, 로그 전달 및 AEM API 인증 구성 파일은 install 명령을 사용하여 RDE에 배포할 수 있습니다. 이러한 구성은 AEM 프로젝트의 config 폴더에서 YAML 파일로 관리됩니다. 자세한 내용은 지원되는 구성을 참조하십시오.
구성 파일을 배포하는 방법에 대해 알아보려면 cdn 구성 파일을 개선하고 RDE에 배포해 보겠습니다.
-
cdn.yaml폴더에서config파일 열기 -
원하는 구성을 업데이트합니다. 예를 들어 속도 제한을 초당 200개의 요청으로 업데이트합니다.
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 ... -
다음 명령을 실행하여 변경 사항을 RDE에 배포합니다
code language-shell $ aio aem:rde:install -t env-config ./config -
RDE에서 변경 사항 확인
추가 AEM RDE 플러그인 명령
로컬 컴퓨터에서 RDE를 관리하고 상호 작용하기 위한 추가 AEM RDE 플러그인 명령을 검토해 보겠습니다.
$ 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.
위의 명령을 사용하여 IDE에서 RDE를 관리하여 개발/배포 수명 주기를 단축할 수 있습니다.
다음 단계
RDE를 사용한 개발/배포 수명 주기에 대해 알아보고 기능을 빠르게 제공합니다.
추가 리소스
AEM 빠른 개발 환경과의 상호 작용을 위한 Adobe I/O Runtime CLI 플러그인