Web フックと AEM イベント

Web フックで AEM イベントを受け取り、イベントの詳細(ペイロード、ヘッダー、メタデータなど)を確認する方法を学びます。

この例では、アドビが提供する​ ホストされた web フック ​を使用することで、独自の web フックを設定しなくても AEM イベントを受け取ることができます。このアドビが提供する web フックは、Glitch でホストされています。Glitch は、web アプリケーションの構築とデプロイに役立つ web ベースの環境を提供することで知られるプラットフォームです。ただし、希望する場合は独自の web フックを使用することもできます。

前提条件

このチュートリアルを完了するには、次が必要になります。

Web フックにアクセス

アドビが提供する web フックにアクセスするには、次の手順に従います。

  • 新しいブラウザータブで、Glitch:ホストされた web フックにアクセスできることを確認します。

    Glitch:ホストされた web フック

  • Web フックに一意の名前(例:<YOUR_PETS_NAME>-aem-eventing)を入力し、「Connect」をクリックします。「Connected to: ${YOUR-WEBHOOK-URL}」というメッセージが画面に表示されます。

    Glitch:web フックの作成

  • Web フック URL をメモします。この情報は、このチュートリアルの後半で必要になります。

Adobe Developer Console プロジェクトでの web フックの設定

上記の web フック URL で AEM イベントを受け取るには、次の手順に従います。

  • Adobe Developer Console でプロジェクトに移動し、クリックして開きます。

  • 製品とサービス」セクションで、AEM イベントを web フックに送信するイベントカードの横にある省略記号 ... をクリックして、「編集」を選択します。

    Adobe Developer Console プロジェクトの編集

  • 新しく開かれた​ イベント登録の設定 ​ダイアログで、「次へ」をクリックして​ イベントの受信方法 ​の手順に進みます。

    Adobe Developer Console プロジェクトの設定

  • イベントの受信方法 ​のステップで、「Web フック」オプションを選択し、先ほどの Glitch のホストされた web フックからコピーした web フック URL を貼り付けて、「設定済みイベントを保存」をクリックします。

    Adobe Developer Console プロジェクトの web フック

  • Glitch の web フックページには、GET リクエストが表示されます。これは、web フック URL を検証するために Adobe I/O イベントによって送信されるチャレンジリクエストです。

    Glitch:チャレンジリクエスト

AEM イベントをトリガー

上記の Adobe Developer Console プロジェクトで登録した AEM as a Cloud Service 環境から AEM イベントをトリガーするには、次の手順に従います。

  • Cloud Manager から AEM as a Cloud Service オーサー環境にアクセスし、ログインします。

  • 購読しているイベント ​に応じて、コンテンツフラグメントの作成、更新、削除、公開、非公開を行います。

イベントの詳細を確認

上記の手順を完了すると、AEM イベントが web フックに配信されているのを確認できます。Glitch の web フックページで POST リクエストを探します。

Glitch: POST リクエスト

POST リクエストの主な詳細を次に示します。

  • path:/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"
}
  • 本文/ペイロード:Adobe I/O Events から送信されるリクエスト本文。次に例を示します。
{
  "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"
}

Web フックでイベントを処理するために必要な情報がすべて AEM イベントの詳細に含まれていることがわかります。例えば、イベントタイプ(type)、イベントソース(source)、イベント ID(event_id)、イベント時刻(time)およびイベントデータ(data)などです。

その他のリソース

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