Webhooks 및 AEM 이벤트

웹후크에서 AEM 이벤트를 수신하고 페이로드, 헤더 및 메타데이터 등 이벤트 세부 사항을 검토하는 방법에 대해 알아봅니다.

이 예제에서는 Adobe이 제공한 호스팅된 webhook ​을(를) 사용하면 자체 webhook을 설정할 필요 없이 AEM 이벤트를 받을 수 있습니다. 이 Adobe 제공 웹후크는 웹 응용 프로그램을 빌드하고 배포하는 데 도움이 되는 웹 기반 환경을 제공하는 것으로 알려진 플랫폼인 Glitch에서 호스팅됩니다. 그러나 원하는 경우 자체 웹후크를 사용하는 옵션도 사용할 수 있습니다.

사전 요구 사항

이 자습서를 완료하려면 다음이 필요합니다.

IMPORTANT
AEM as a Cloud Service 이벤트는 프리릴리스 모드의 등록된 사용자만 사용할 수 있습니다. AEM as a Cloud Service 환경에서 AEM 이벤트를 사용하려면 AEM 이벤트 팀에 문의하십시오.

Webhook 액세스

Adobe이 제공한 웹후크에 액세스하려면 다음 단계를 따르십시오.

  • 새 브라우저 탭에서 결함 - 호스트된 웹후크에 액세스할 수 있는지 확인하십시오.

    결함 - 호스팅된 webhook

  • 웹후크의 고유 이름(예: <YOUR_PETS_NAME>-aem-eventing)을 입력하고 연결 ​을 클릭합니다. 화면에 Connected to: ${YOUR-WEBHOOK-URL}개의 메시지가 표시됩니다.

    결함 - 웹후크 만들기

  • Webhook URL ​을 메모하세요. 나중에 이 자습서에서 필요합니다.

Adobe Developer Console 프로젝트에서 Webhook 구성

위의 웹후크 URL에서 AEM 이벤트를 수신하려면 다음 단계를 따르십시오.

  • Adobe Developer Console에서 프로젝트로 이동한 다음 클릭하여 엽니다.

  • 제품 및 서비스 섹션에서 웹후크로 AEM 이벤트를 보낼 원하는 이벤트 카드 옆에 있는 생략 부호 ...을(를) 클릭하고 편집 ​을(를) 선택합니다.

    Adobe Developer Console 프로젝트 편집

  • 새로 연 이벤트 등록 구성 대화 상자에서 다음 ​을 클릭하여 이벤트를 받는 방법 단계로 진행합니다.

    Adobe Developer Console 프로젝트 구성

  • 이벤트를 받는 방법 단계에서 Webhook 옵션을 선택하고 Glitch 호스팅 Webhook에서 이전에 복사한 Webhook URL ​을(를) 붙여 넣은 다음 구성된 이벤트 저장 ​을 클릭합니다.

    Adobe Developer Console 프로젝트 Webhook

  • Glitch webbook 페이지에 GET 요청이 표시되어야 하며, 이 요청은 Adobe I/O 이벤트에서 webhook URL을 확인하기 위해 보낸 챌린지 요청입니다.

    결함 - 요청

AEM 이벤트 트리거

위의 Adobe Developer Console 프로젝트에 등록된 AEM as a Cloud Service 환경에서 AEM 이벤트를 트리거하려면 다음 단계를 따르십시오.

  • Cloud Manager을(를) 통해 AEM as a Cloud Service 작성자 환경에 액세스하고 로그인합니다.

  • 구독한 이벤트 ​에 따라 콘텐츠 조각을 만들거나, 업데이트하거나, 삭제하거나, 게시하거나, 게시 취소합니다.

이벤트 세부 사항 검토

위의 단계를 완료하면 AEM 이벤트가 webhook에 전달되는 것을 볼 수 있습니다. Glitch webhook 페이지에서 POST 요청을 찾습니다.

결함 - POST 요청

다음은 POST 요청에 대한 주요 세부 정보입니다.

  • 경로: /webhook/${YOUR-WEBHOOK-URL}(예: /webhook/AdobeTM-aem-eventing)

  • headers: Adobe I/O 이벤트에서 보낸 요청 헤더(예: )

{
"connection": "close",
"x-forwarded-for": "34.205.178.127,::ffff:10.10.10.136,::ffff:10.10.84.114",
"x-forwarded-proto": "https,http,http",
"x-forwarded-port": "443,80,80",
"host": "lovely-ancient-coaster.glitch.me",
"content-length": "826",
"x-adobe-public-key2-path": "/prod/keys/pub-key-IkpzhSpTw0.pem",
"x-adobe-delivery-id": "18abfb47-d24a-4684-ade8-f442a3444033",
"x-adobe-provider": "aemsites_7ABB3E6A5A7491460A495D61@AdobeOrg_acct-aem-p46652-e1074060@adobe.com",
"x-adobe-public-key1-path": "/prod/keys/pub-key-Ptc2pD9vT9.pem",
"x-adobe-event-id": "a0f3fb7d-b02c-4612-aac6-e472b80af793",
"x-adobe-event-code": "aem.sites.contentFragment.modified",
"user-agent": "Adobe/1.0",
"x-adobe-digital-signature-2": "zGLso15+6PV6X6763/x6WqgxDlEXpkv5ty8q4njaq3aUngAI9VCcYonbScEjljRluzjZ05uMJmRfNxwjj60syxEJPuc0dpmMU635gfna7I4T7IaHs496wx4m2E5mvCM+aKbNQ+NPOutyTqI8Ovq29P2P87GIgMlGhAtOaxRVGNc6ksBxc2tCWbrKUhW8hPJ0sHphU499dN4TT32xrZaiRw4akT3M/hYydsA8dcWpJ7S4dpuDS21YyDHAB8s9Dawtr3fyPEyLgZzpwZDfCqQ8gdSCGqKscE4pScwqPkKOYCHDnBvDZVe583jhcZbHGjk7Ncp/FrgQk7avWsk5XlzcuA==",
"x-adobe-digital-signature-1": "QD7THFJ1vmJqD/BatIpzO6+ACQ9cSKPR7XVaW0LI7cN/xs7ucyri6dmkerOPe9EJpjGoqCg8rxWedrIRQB3lgVskChbHH3Ujx5YG0aTQLSd1Lsn5CFbW1U0l0GqId9Cnd6MccrqSznZXcdW1rMFuRk8+gqwabBifSaLbu3r30G5hmqQd72VtiYTE4m23O3jYIMiv62pRP+a+p4NjNj1XG320uRSry+BPniTjDJ6oN/Ng7aUEKML8idZ/ZTqeh/rJSrVO95UryUolFDRwDkRn5zKonbvhSLAeXzaPhvimWUHtldq9M1WTyRMpsBk8BRzaklxlq+woJ2UjYPUIEzjotw==",
"accept-encoding": "deflate,compress,identity",
"content-type": "application/cloudevents+json; charset=UTF-8",
"x-forwarded-host": "lovely-ancient-coaster.glitch.me",
"traceparent": "00-c27558588d994f169186ca6a3c6607d4-a7e7ee36625488d4-01"
}
  • body/payload: Adobe I/O 이벤트에 의해 전송된 요청 본문(예: )
{
  "specversion": "1.0",
  "type": "aem.sites.contentFragment.modified",
  "source": "acct:aem-p46652-e1074060@adobe.com",
  "id": "bf922a49-9db4-4377-baf4-70e96e15c45f",
  "time": "2023-12-12T20:36:43.583228Z",
  "dataschema": "https://ns.adobe.com/xdm/aem/sites/events/content-fragment-modified.json",
  "datacontenttype": "application/json",
  "data": {
    "user": {
      "imsUserId": "933E1F8A631CAA0F0A495E53@80761f6e631c0c7d495fb3.e",
      "principalId": "xxx@adobe.com",
      "displayName": "First LastName",
    },
    "path": "/content/dam/wknd-shared/en/adventures/beervana-portland/beervana-in-portland",
    "model": {
      "id": "/conf/wknd-shared/settings/dam/cfm/models/adventure"
    },
    "id": "9a2d3e6a-efda-4079-a86e-0ef2ede692da",
    "properties": [
      {
        "name": "groupSize",
        "changeType": "modified"
      }
    ]
  },
  "event_id": "a0f3fb7d-b02c-4612-aac6-e472b80af793",
  "recipient_client_id": "f51ea733ba404db299fefbf285dc1c42"
}

AEM 이벤트 세부 사항에 웹후크에서 이벤트를 처리하는 데 필요한 모든 정보가 포함되어 있음을 알 수 있습니다. 예를 들어 이벤트 유형(type), 이벤트 소스(source), 이벤트 ID(event_id), 이벤트 시간(time) 및 이벤트 데이터(data)가 있습니다.

추가 리소스

  • [결함 웹후크 소스 코드](https://glitch.com/edit/#!/러블리 앤시언트 코스터)을(를) 참조할 수 있습니다.
recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69