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事件团队

在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