Adobe I/O Runtime動作與AEM事件

瞭解如何使用Adobe I/O Runtime動作接收AEM事件,並檢閱事件詳細資料,例如裝載、標頭和中繼資料。

Adobe I/O Runtime是無伺服器平台,可讓程式碼執行以回應Adobe I/O事件。 因此可協助您建立事件驅動的應用程式,而不需擔心基礎建設問題。

在此範例中,您會建立接收AEM事件並記錄事件詳細資料的Adobe I/O Runtime 動作
https://developer.adobe.com/runtime/docs/guides/overview/what_is_runtime/

高層級步驟為:

  • 在Adobe Developer Console中建立專案
  • 初始化專案以進行本機開發
  • 在Adobe Developer Console中設定專案
  • 觸發AEM事件並驗證動作執行

先決條件

若要完成本教學課程,您需要:

IMPORTANT
AEM as a Cloud Service事件僅適用於搶鮮版模式的註冊使用者。 若要在您的AEM as a Cloud Service環境中啟用AEM事件,請連絡AEM-Eventing團隊

在Adobe Developer Console中建立專案

若要在Adobe Developer Console中建立專案,請遵循下列步驟:

  • 導覽至Adobe Developer Console並按一下​ 主控台 ​按鈕。

  • 在​ 快速入門 ​區段中,按一下​ 從範本建立專案。 然後在​ 瀏覽範本 ​對話方塊中,選取​ App Builder ​範本。

  • 視需要更新專案標題、應用程式名稱並新增工作區。 然後,按一下​ 儲存

    在Adobe Developer Console中建立專案

初始化專案以進行本機開發

若要將Adobe I/O Runtime動作新增至專案,您必須初始化專案以進行本機開發。 在本機電腦開啟終端機上,導覽至您要初始化專案的位置,然後依照下列步驟進行:

  • 執行以初始化專案

    code language-bash
    aio app init
    
  • 選取Organization、您在上一步建立的Project以及工作區。 在What templates do you want to search for?步驟中,選取All Templates選項。

    組織 — 專案 — 選擇 — 初始化專案

  • 從範本清單中選取@adobe/generator-app-excshell選項。

    擴充性範本 — 初始化專案

  • 在您最愛的IDE中開啟專案,例如VSCode。

  • 選取的​ 擴充性範本 (@adobe/generator-app-excshell)提供一般執行階段動作,程式碼在src/dx-excshell-1/actions/generic/index.js檔案中。 讓我們更新以保持簡單,記錄事件詳細資料並傳回成功回應。 不過在下個範例中,會增強來處理已收到的AEM事件。

    code language-javascript
    const fetch = require("node-fetch");
    const { Core } = require("@adobe/aio-sdk");
    const {
    errorResponse,
    getBearerToken,
    stringParameters,
    checkMissingRequestInputs,
    } = require("../utils");
    
    // main function that will be executed by Adobe I/O Runtime
    async function main(params) {
    // create a Logger
    const logger = Core.Logger("main", { level: params.LOG_LEVEL || "info" });
    
    try {
        // 'info' is the default level if not set
        logger.info("Calling the main action");
    
        // log parameters, only if params.LOG_LEVEL === 'debug'
        logger.debug(stringParameters(params));
    
        const response = {
        statusCode: 200,
        body: {
            message: "Received AEM Event, it will be processed in next example",
        },
        };
    
        // log the response status code
        logger.info(`${response.statusCode}: successful request`);
        return response;
    } catch (error) {
        // log any server errors
        logger.error(error);
        // return with 500
        return errorResponse(500, "server error", logger);
    }
    }
    
    exports.main = main;
    
  • 最後,透過執行在Adobe I/O Runtime上部署更新的動作。

    code language-bash
    aio app deploy
    

在Adobe Developer Console中設定專案

若要接收AEM事件並執行上一步建立的Adobe I/O Runtime動作,請在Adobe Developer Console中設定專案。

  • 在Adobe Developer Console中,導覽至上一步建立的專案,然後按一下以開啟專案。 選取Stage工作區,這是部署動作的位置。

  • 按一下​ [新增服務]按鈕,然後選取​ API ​選項。 在​ 新增API ​強制回應視窗中,選取​ Adobe服務 > I/O管理API,然後按一下​ 下一步,遵循其他設定步驟,然後按一下​ 儲存已設定的API

    新增服務 — 設定專案

  • 同樣地,按一下​ 新增服務 ​按鈕並選取​ 事件 ​選項。 在​ 新增事件 ​對話方塊中,選取​ Experience Cloud > AEM Sites,然後按一下​ 下一步。 按照其他設定步驟操作,選取AEMCS執行個體、事件型別和其他詳細資訊。

  • 最後,在​ 如何接收事件 ​步驟中,展開​ 執行階段動作 ​選項,並選取在上一步建立的​ 一般 ​動作。 按一下​ 儲存已設定的事件

    執行階段動作 — 設定專案

  • 檢閱事件註冊詳細資料,以及​ 偵錯追蹤 ​標籤,並驗證​ 挑戰探查 ​要求與回應。

    活動註冊詳細資料

觸發AEM事件

若要從已在上述AEM as a Cloud Service專案中註冊的Adobe Developer Console環境觸發AEM事件,請遵循下列步驟:

  • 透過Cloud Manager存取並登入您的AEM as a Cloud Service作者環境。

  • 根據您的​ 訂閱事件,建立、更新、刪除、發佈或取消發佈內容片段。

檢閱事件詳細資料

完成上述步驟後,您應該會看到系統將AEM事件傳遞至一般動作。

您可以在事件登入詳細資訊的​ 偵錯追蹤 ​標籤中檢閱事件詳細資訊。

AEM事件詳細資料

後續步驟

在下個範例中,我們將增強此動作以處理AEM事件、回撥AEM作者服務以取得內容詳細資料、將詳細資料儲存在Adobe I/O Runtime儲存體中,並透過單頁應用程式(SPA)顯示它們。

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