Edge Delivery Services에서 AEM Edge 기능 설정

IMPORTANT
AEM Edge 함수는 현재 베타 버전입니다. 기능 및 설명서는 변경될 수 있습니다. 피드백을 받으려면 aemcs-edgecompute-feedback@adobe.com에 문의하십시오.

Edge Delivery Services 사이트에서 AEM Edge 기능을 설정하는 방법에 대해 알아봅니다.

이 튜토리얼에서는 Cloud Manager에서의 Edge Delivery 사이트 온보딩, CLI 설치, 보일러플레이트 템플릿의 프로젝트 설정, CDN 구성 및 작업 엔드포인트 배포에 대해 설명합니다.

이 자습서에서는 Frescopa 사이트 프로젝트를 데모 사이트로 사용합니다. 고유한 Edge Delivery Services 사이트에서 동일한 단계를 따를 수 있습니다.

빌드할 항목

AEM Edge 함수는 Edge Delivery 원본이 아닌 에지의 Adobe CDN에서 실행되는 JavaScript 모듈입니다. 두 개의 경로를 사용하여 이름이 my-edge-function인 AEM Edge 함수 하나를 배포합니다.

  • /hello-world이(가) 가장자리에서 인사말을 반환합니다
  • /weather이(가) 가장자리에서 방문자의 위치를 감지하고 Open-Meteo API를 호출한 다음 도시의 현재 온도를 반환합니다.

개발 중에 개발 서버를 사용하여 로컬에서 AEM Edge 기능을 테스트합니다. 그런 다음 Edge Delivery 구성 파이프라인을 통해 edgeFunctions.yamlcdn.yaml을(를) 배포하고 AEM Edge 함수(JavaScript 모듈)를 Adobe CDN에 푸시한 다음 사이트 도메인에서 두 끝점을 모두 확인합니다(예: https://myfrescopa.enablementadobe.com/hello-world).

상위 수준 단계:

  1. Edge Delivery 사이트를 Cloud Manager에 온보딩
  2. Adobe CLI 및 AEM Edge 기능 플러그인 설치
  3. Edge Delivery Services에서 AEM Edge 기능 설정
  4. 표준 템플릿에서 AEM Edge Functions 프로젝트 만들기
  5. 로컬에서 AEM Edge 기능 프로젝트 복제, 검토 및 실행
  6. CDN 구성 검토, 관리 및 배포
  7. AEM Edge 함수를 빌드하고 Adobe CDN에 배포합니다.
  8. 끝점이 작동하는지 확인

사전 요구 사항

시작하기 전에 다음 사항이 준비되었는지 확인하십시오.

  • Node.js 및 npm이 로컬에 설치됨
  • 표준 템플릿에서 프로젝트를 만들 수 있는 GitHub 계정
  • Cloud Manager 프로그램용 Edge Delivery Services 추가 기능
  • Cloud Manager의 배포 관리자 역할
  • Frescopa 사이트 프로젝트 또는 고유한 Edge Delivery 사이트 프로젝트
NOTE
Edge Delivery Services은 사이트의 개발, 스테이징 및 프로덕션 분기를 지원하기 위해 최대 프로그램당 최대 3개의 AEM Edge 함수​를 지원합니다.

1단계: Edge Delivery 사이트를 Cloud Manager에 온보딩

AEM Edge 기능을 설정하기 전에 Cloud Manager에서 Edge Delivery 사이트를 온보딩하십시오. 이 단계에서는 Cloud Manager만 사용하며 Adobe CLI는 필요하지 않습니다.

사이트가 이미 온보딩되어 있는 경우 Cloud Manager에 표시되는지 확인하고 2단계로 건너뜁니다.

다음 단계에서는 Frescopa 사이트 프로젝트를 데모 사이트로 사용합니다.

  1. Cloud Manager에 로그인하고 Edge Delivery Services 추가 기능을 사용하여 프로그램을 엽니다. 프로그램 개요에서 Edge Delivery 탭이 표시되는지 확인합니다.

  2. Edge Delivery 탭에서 Edge Delivery 할 일 목록​을 완료합니다. 주요 단계:

    1. Edge Delivery 사이트 추가:

      • 사이트 이름: Frescopa
      • Edge Delivery 원본: https://main--frescopa--sachinmali.aem.live/

      형식은 https://<branch>--<site-name>--<organization-name>.aem.live/입니다. 여기서 <branch>, <site-name><organization-name>은(는) 각각 Edge Delivery Services 사이트 프로젝트의 분기, 사이트 이름 및 조직 이름입니다.

      Edge Delivery Services 사이트 프로젝트의 dev 분기를 설정하는 것이 좋습니다. 그러나 데모 사이트의 아래 스크린샷을 참조하십시오.

      Edge Delivery 사이트 추가

    2. 도메인 추가:

      • 도메인 이름: myfrescopa.enablementadobe.com

      Edge Delivery Services 사이트 프로젝트의 개발 분기에 매핑된 개발 사이트에서 시도하는 경우에도 AEM Edge Functions 프로젝트를 배포하려면 사용자 지정 도메인 이름이 설정되어 있어야 합니다.

    3. SSL 인증서 추가:

      • 인증서 유형: 고객 관리(OV/EV)
      • 인증서 이름: enablementadobe.com
      • 인증서: -----BEGIN CERTIFICATE-----에서 -----END CERTIFICATE----- 사이의 서명된 인증서 파일 콘텐츠
      • 개인 키: -----BEGIN PRIVATE KEY-----에서 -----END PRIVATE KEY----- 사이의 개인 키 파일 내용
      • 인증서 체인: -----BEGIN CERTIFICATE-----에서 -----END CERTIFICATE----- 사이의 인증서 체인 파일 내용

      SSL 인증서 추가

      Adobe 관리(DV) 인증서를 사용할 수도 있습니다. 자습서에서는 고객 관리(OV/EV) 인증서를 예로 사용합니다.

    4. myfrescopa.enablementadobe.com의 DNS 호스팅 서비스에 DNS 레코드를 추가​합니다.

    5. 도메인을 매핑 myfrescopa.enablementadobe.com하여 Adobe 관리 CDN에 매핑합니다.

      Adobe 관리 CDN에 도메인 매핑

  3. Edge Delivery Sites 표에 사이트가 표시되는지 확인합니다. 데모 Frescopa 사이트는 https://myfrescopa.enablementadobe.com/에서 확인할 수 있습니다.

    Cloud Manager의 Edge Delivery 사이트

전체 연습은 Cloud Manager에 Edge Delivery 사이트 추가를 참조하십시오.

2단계: CLI 및 플러그인 설치

Adobe aio CLI 및 AEM Edge 함수 플러그인을 설치하거나 업데이트합니다.

새로 설치

새로 설치하려면 다음 명령을 실행합니다.

code language-bash
# Install the Adobe CLI
$ npm install -g @adobe/aio-cli

# Install the AEM Edge Functions plugin
$ aio plugins install @adobe/aio-cli-plugin-aem-edge-functions
기존 업데이트

Adobe CLI 및 설치된 플러그인 업데이트:

code language-bash
# Update the Adobe CLI
$ aio update

# List installed plugins (confirm the AEM Edge Functions plugin is listed)
$ aio plugins

# Update the installed plugins
$ aio plugins update

예를 들어, CLI 및 AEM Edge 기능 플러그인의 성공적인 설치는 다음과 같아야 합니다.

CLI 버전 출력

3단계: AEM Edge 기능 설정

AEM Edge 기능은 Edge Delivery Services 사이트 도메인에 설정해야 합니다. 코드 및 구성 파일을 Adobe CDN에 배포할 수 있으므로 사이트의 JavaScript 코드에서 AEM Edge 함수에서 지원하는 경로를 호출할 수 있습니다.

AEM Edge 함수를 설정하려면 다음 명령을 실행합니다.

$ aio aem edge-functions setup

Adobe IMS에 아직 로그인하지 않은 경우 명령이 로그인 흐름을 트리거합니다. 프로그램, 사이트 유형, Edge Delivery 사이트 및 ADC 프로젝트 구성 세부 사항을 묻는 메시지가 설정 프로세스에 표시됩니다. 사이트 유형으로 Edge Delivery Services​을(를) 선택하십시오. 설치 세부 정보는 .aio 파일에 저장되며, 이후 AEM Edge Functions CLI 명령에 대한 컨텍스트를 제공합니다.

AEM Edge 함수 설정 프롬프트

Frescopa Edge Delivery 사이트myfrescopa.enablementadobe.com 도메인과 연결합니다.

IMPORTANT
CDN(AEM Content Delivery Network) API 카드를 포함하는 API 자격 증명에 대한 Adobe Developer Console(ADC) 프로젝트 구성은 이 자습서의 일부로 수행되지 않습니다. 그러나 CI/CD 시스템에서 AEM Edge 기능 프로젝트를 배포하려는 경우에는 이 작업을 수행해야 합니다. 자세한 내용은 Adobe Developer Console 통합CI/CD 설치를 참조하십시오.

다음 명령을 사용하여 AEM Edge 기능 설정 세부 사항을 검토합니다.

$ aio aem edge-functions info

출력은 다음과 같아야 합니다.

AEM Edge 함수 정보 출력

4단계: AEM Edge 기능 프로젝트 만들기

aem-edge-functions-boilerplate GitHub 템플릿에서 AEM Edge 기능 프로젝트를 만듭니다. 보일러판에는 시작하는 데 필요한 파일 및 구성이 포함됩니다.

  1. GitHub의 aem-edge-functions-boilerplate​(으)로 이동합니다.

  2. 오른쪽 상단 모서리에서 이 템플릿 사용 > 새 저장소 만들기​를 선택합니다.

    AEM Edge 함수에서 이 템플릿 옵션을 사용

  3. 리포지토리 이름(예: frescopa-edge-functions)을 제공하고 설명을 추가하고 가시성을 개인(으)로 설정한 다음 리포지토리 만들기​를 선택하십시오.

    AEM Edge 함수 저장소 세부 정보를 만듭니다

5단계: AEM Edge 기능 프로젝트 복제, 검토 및 실행

AEM Edge 기능 프로젝트 복제

4단계에서 만든 저장소를 복제한 다음 IDE에서 Frescopa(또는 고유한) Edge Delivery 사이트 프로젝트와 함께 엽니다. 대부분의 편집자는 두 프로젝트에서 동시에 작업할 수 있는 작업 공간 또는 다중 루트 보기를 지원합니다.

# Clone the repository
$ git clone https://github.com/<your-org>/<your-project-name>.git

예를 들어 IDE에서 Frescopa Edge Delivery 사이트 프로젝트 및 Frescopa AEM Edge 기능 프로젝트를 작업 영역으로 참조하십시오.

IDE에서 작업 영역으로 Frescopa Edge Delivery 사이트 프로젝트 및 Frescopa AEM Edge 기능 프로젝트

AEM Edge 기능 프로젝트 검토

AEM Edge 기능 프로젝트를 변경하거나 배포하기 전에 AEM Edge 기능 계약을 정의하는 주요 파일을 검토하십시오.

  1. package.json에 프로젝트 종속성이 포함되어 있습니다. @fastly/js-compute 종속성을 확인합니다. 자세한 내용은 계산 플랫폼의 JavaScript를 참조하십시오.

  2. src/index.js은(는) 함수 진입점이며 프로젝트의 기본 논리를 포함합니다. Fastly Compute의 addEventListener("fetch", ...) 패턴을 사용합니다. 들어오는 모든 요청은 경로 일치 논리를 추가하는 handleRequest 함수를 통해 흐릅니다. 예를 들어 다음 코드는 상용구에서 가져온 코드입니다.

    code language-js
    // src/index.js
    addEventListener("fetch", (event) => event.respondWith(handleRequest(event)));
    
    async function handleRequest(event) {
        const req = event.request;
        const url = new URL(req.url);
    
        let finalResponse;
    
        try {
            // Route matching logic
            if (url.pathname === "/" && req.method === "GET") {
                finalResponse = new Response("Hello World from the edge!", { status: 200 });
            } else if (url.pathname === "/hello-world" && req.method === "GET") {
                finalResponse = new Response("Hello World from the edge!", { status: 200 });
            } else if (url.pathname === "/weather" && req.method === "GET") {
                finalResponse = await weatherHandler(req, event.client);
            } else {
                finalResponse = response.notFound();
            }
        } catch (err) {
            finalResponse = new Response("Internal Server Error", { status: 500 });
        }
    
        return finalResponse;
    }
    

    단일 AEM Edge 함수는 handleRequestif 문을 통해 여러 경로를 처리할 수 있습니다.

  3. fastly.toml이(가) 로컬 개발 서버를 구성합니다. 자세한 내용은 Fastly.toml 참조를 참조하십시오.

  4. config/에 AEM Edge 기능 서비스 및 CDN 라우팅 규칙에 대한 구성 파일이 포함되어 있습니다. Cloud Manager의 Edge Delivery 구성 파이프라인을 통해 이러한 파일을 배포합니다. 6단계에서는 이 프로세스를 다룹니다.

전체 설정을 이해하려면 test/, src/lib/README.md 등의 나머지 프로젝트 파일을 검토하십시오.

로컬에서 AEM Edge 기능 프로젝트 실행

빠르게 반복하기 위해 AEM Edge 기능 프로젝트를 로컬에서 실행할 수 있습니다. AEM Edge Functions 프로젝트 디렉토리에서 종속성을 설치하고 로컬 개발 서버를 시작합니다.

# Navigate to the project directory (replace with your project name)
$ cd frescopa-edge-functions

# Install dependencies
$ npm install

# Start the local development server
$ aio aem edge-functions serve

서버가 http://127.0.0.1:7676에 시작됩니다.

예를 들어 출력은 다음 스크린샷과 같아야 합니다.

로컬 개발 서버 출력

6단계: CDN 구성 검토 및 배포

AEM Edge Functions 프로젝트에는 CDN 구성 파일이 포함되어 있습니다. 이를 검토하고 Cloud Manager에서 Edge Delivery 구성 파이프라인을 사용하여 배포합니다.

CDN 구성 검토

AEM Edge Functions 프로젝트의 config/ 디렉터리에서 CDN 구성 파일을 검토하십시오.

  1. config/edgeFunctions.yaml은(는) AEM Edge 기능 서비스를 선언합니다. 예:
kind: "EdgeFunctions"
version: "1"
data:
  functions:
    - name: my-edge-function

지원되는 속성에 대한 자세한 내용은 edgeFunctions.yaml 참조를 참조하십시오.

  1. config/cdn.yaml은(는) 트래픽을 AEM Edge Function 서비스로 전달하는 CDN 라우팅 규칙을 선언합니다. 예:
kind: 'CDN'
version: '1'
data:
  originSelectors:
    rules:
      - name: route-weather-to-edge-function
        when: { reqProperty: path, equals: "/weather" }
        action:
          type: selectAemOrigin
          originName: edgefunction-my-edge-function
          skipCache: true
      - name: route-hello-world-to-edge-function
        when: { reqProperty: path, equals: "/hello-world" }
        action:
          type: selectAemOrigin
          originName: edgefunction-my-edge-function
          skipCache: true

주요 콜아웃:

  • originName은(는) edgefunction-<edge-function-name> 패턴을 따라야 합니다. 여기서 <edge-function-name>은(는) edgeFunctions.yaml에서 선언된 AEM Edge 함수의 이름입니다.
  • type은(는) selectAemOrigin이어야 합니다.
  • skipCache이(가) 요청에 대한 CDN 캐시를 무시하도록 true(으)로 설정되었습니다.

자세한 내용은 원본 선택기를 참조하세요.

CDN 구성 관리

Cloud Manager 구성 파이프라인을 통해 CDN 구성을 배포합니다. 먼저 AEM Edge Functions 프로젝트의 config/ 파일을 Cloud Manager에서 사용할 수 있도록 합니다. 다음 두 가지 옵션이 있습니다.

  1. Adobe 저장소: Cloud Manager에서 프로그램의 새 저장소를 만듭니다.

  2. 개인 저장소: 기존 GitHub 저장소를 Cloud Manager에 연결합니다.

이 자습서에서는 4단계의 Frescopa AEM Edge 기능 프로젝트를 개인 저장소로 사용합니다.

  1. Cloud Manager에서 저장소​를 열고 저장소 추가​를 선택합니다.

  2. 저장소 추가 대화 상자에서 개인 저장소​를 선택한 다음 저장소 이름, URL 및 유형을 제공합니다. 저장​을 선택합니다.

    저장소 추가 대화 상자

  3. 개인 저장소 소유권 확인 대화 상자의 단계를 완료하십시오.

    개인 저장소 소유권 확인 대화 상자

    1. 저장소에 대한 Cloud Manager 액세스 권한 부여:

      AEM 리포지토리 액세스용 Cloud Manager

    2. AEM Edge Functions 프로젝트 저장소에 유효성 검사 암호를 저장합니다.

      AEM Edge Functions 프로젝트 저장소에 저장된 암호

유효성 검사가 완료되면 개인 저장소가 저장소 테이블에 나타납니다.

CDN 구성 배포

Cloud Manager에서 Edge Delivery 구성 파이프라인을 만들고 실행합니다.

  1. 프로그램 개요 페이지에서 Edge Delivery 탭을 엽니다. 파이프라인​에서 Edge Delivery 파이프라인 추가​를 선택합니다.

    Edge Delivery 파이프라인 추가 단추

  2. Edge Delivery 파이프라인 추가 대화 상자에서 이름을 입력하고 계속​을 선택합니다.

    Edge Delivery 파이프라인 추가 대화 상자

  3. Source 코드 단계에서 추가한 개인 저장소, main 분기 및 /config을(를) 코드 위치로 선택합니다. 저장​을 선택합니다.

    Source 코드 단계

  4. 파이프라인 이름 옆에 있는 ​을(를) 선택한 다음 실행​을(를) 선택하여 파이프라인을 실행합니다.

    Edge Delivery 파이프라인 실행

성공적으로 실행하면 edgeFunctions.yaml 및 cdn.yaml 파일이 Edge Delivery 사이트 도메인에 배포됩니다.

CDN 구성이 성공적으로 배포되었는지 확인합니다.

$ aio aem edge-functions list

출력에는 my-edge-function(또는 edgeFunctions.yaml에서 선언한 모든 이름)이 나열되어야 합니다.

AEM Edge 함수 목록 출력

7단계: AEM Edge 기능 프로젝트 빌드 및 배포

다음 명령을 사용하여 AEM Edge 기능 프로젝트를 빌드하고 배포합니다. 이 명령은 .aio 파일에 저장된 컨텍스트를 사용합니다.

# Navigate to the AEM Edge Functions project directory (replace with your project name)
$ cd frescopa-edge-functions

# Review to make sure you are deploying to the correct Edge Delivery Services site
$ aio aem edge-functions info

# Build the project
$ aio aem edge-functions build

# Deploy to Adobe CDN
$ aio aem edge-functions deploy my-edge-function

deploy에 전달된 이름은 config/edgeFunctions.yaml에서 선언된 name과(와) 일치해야 합니다. 또한 Cloud Manager 배포 관리자 제품 프로필의 일부여야 합니다.

예를 들어 출력은 다음 스크린샷과 같아야 합니다.

AEM Edge 함수 빌드 및 배포

IMPORTANT
CI/CD 시스템에서 AEM Edge 기능 프로젝트를 배포하려면 API 자격 증명에 대한 Adobe Developer Console(ADC) 프로젝트가 필요합니다. 자세한 내용은 Adobe Developer Console 통합CI/CD 설치를 참조하십시오.

8단계: 엔드포인트 확인

브라우저에서 또는 curl을 사용하여 배포된 끝점을 확인합니다.

$ curl https://myfrescopa.enablementadobe.com/hello-world
$ curl https://myfrescopa.enablementadobe.com/weather

1단계에서 도메인을 Edge Delivery 사이트 도메인으로 바꿉니다.

예를 들어 응답은 다음 스크린샷과 같습니다.

실시간 끝점 응답

NOTE
edgefunction-pXXXXX-dYYYYY-<edge-function-name>.adobeaemcloud.com 도메인은 디버깅에만 사용할 수 있으며 안정적이지 않습니다. 프로덕션에서 요청은 cdn.yaml의 CDN 라우팅 규칙을 통해 사이트의 사용자 지정 도메인을 통해 AEM Edge 함수에 도달합니다.

실제 시나리오에서는 CDN에서 서버측 논리에 AEM Edge 함수를 사용하고 사이트의 block JavaScript에서 호출합니다. 고급 구성에 대해서는 AEM Edge 기능 제품 설명서를 참조하세요.

요약

Frescopa Edge Delivery 사이트를 Cloud Manager에 온보딩하고, CLI를 설치하고, Edge Delivery Services에서 AEM Edge 함수를 설정하고, 프로젝트를 로컬로 생성 및 실행하고, CDN 구성을 배포하고, AEM Edge 함수를 빌드 및 배포하고, 끝점을 확인했습니다.

추가 리소스

recommendation-more-help
experience-manager-learn-help-cloud-service