Edge 함수를 사용하여 여러 엔드포인트 제공

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

하나의 AEM Edge 함수는 많은 HTTP 끝점을 노출할 수 있습니다. API 끝점 빌드의 예제에서는 이미 단일 JavaScript 함수에 대한 두 개의 끝점(/status/my-api)을 보여 줍니다. 각 끝점에 대해 별도의 함수를 배포하지 않고​동일한 함수에 끝점 일치 논리를 추가하기만 하면 됩니다.

주요 사항

레이어
어떤 스케일
edgeFunctions.yaml
이름이 있는 하나의 함수 선언(예: my-edge-function)
cdn.yaml
하나의 원본 선택기 규칙 끝점​당 하나의 모든 규칙이 동일한 원본(예: edgefunction-my-edge-function)을 공유하지만, 각 규칙에는 고유한 경로 일치 규칙이 있습니다
index.js
if끝점​당 하나 및 문 본문에 고유한 처리기 논리가 있습니다.

다른 끝점을 추가하는 방법

/api/items과(와) 같은 새 끝점을 표시하려면 다음을 수행합니다.

  1. src/index.js에 끝점 일치 논리를 추가합니다.
  2. AEM Edge 함수를 빌드하고 배포합니다.
  3. 끝점에 대한 config/cdn.yaml에 원본 선택기 규칙을 추가합니다.
  4. CDN 구성 배포

처리기 논리 구성 방법

끝점 일치에 index.js의 초점을 맞추십시오. API가 증가함에 따라 핸들러 논리를 별도의 파일로 이동합니다.

src/
├── index.js          # fetch event handler and endpoint matching
├── my-api.js         # handler for /my-api
├── items.js          # handler for /api/items
└── lib/
    └── response.js   # shared 404 and 500 helpers

메서드 또는 경로 접두사 일치

끝점 일치는 일반 JavaScript입니다. 정확한 경로 일치로 제한되지 않습니다.

HTTP 메서드: 별도의 if 문을 사용하여 같은 경로에 있는 GETPOST을(를) 처리합니다.

if (url.pathname === "/api/items" && req.method === "GET") {
  return await listItems(req);
}

if (url.pathname === "/api/items" && req.method === "POST") {
  return await createItem(req);
}

경로 접두사: 공유 접두사 아래에 관련 끝점을 그룹화한 다음 라우터 모듈 내의 핸들러로 디스패치합니다.

// src/index.js
if (url.pathname.startsWith("/api/")) {
  return await apiRouter(req, url);
}
// src/api-router.js
async function apiRouter(req, url) {
  // match the segment after the shared /api/ prefix
  switch (url.pathname) {
    case "/api/items":
      return await itemsHandler(req);
    case "/api/orders":
      return await ordersHandler(req);
    default:
      return new Response("Not found", { status: 404 });
  }
}

export { apiRouter };

접두어 라우터를 약식 상태로 유지합니다. 즉, 핸들러에 직접 전달되는 접두어 수준이 하나입니다. 접두사가 커지면 하나의 접두사 아래에 라우터를 중첩하지 않고 고유한 원본 선택기 규칙(예: /api/catalog//api/checkout/)을 사용하여 별도의 접두사로 분할합니다.

추가 코드 예

AEM Edge 함수 보일러판은(는) 하나의 함수에 여러 끝점을 제공합니다.

파일
표시 내용
끝점 일치
src/index.js
하나의 가져오기 이벤트 처리기에 여러 경로가 있음
CDN 규칙
config/cdn.yaml
끝점당 하나의 원본 선택기 규칙
핸들러 모듈
src/weather.js
index.js에서 추출된 논리

추가 리소스

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