asset compute可扩展性故障诊断

以下是开发和部署AEM Assets的自定义Asset compute工作程序时可能遇到的常见问题和错误以及解决方案的索引。

开发

呈现版本被部分绘制/损坏

  • 错误:演绎版未完全渲染(图像时)或已损坏,无法打开。

    已返回部分绘制的演绎版

  • 原因:工作人员的 renditionCallback 函数在完全写入演绎版之前退出 rendition.path.

  • 分辨率:查看自定义工作进程代码,并确保使用同步执行所有异步调用 await.

开发工具

asset compute项目中缺少Console.json文件

  • 错误: 错误:验证(…/node_modules/@adobe/asset-compute-client/lib/integrationConfiguration.js)时缺少必需的文件:XX:YY)异步安装AssetCompute (…/node_modules/@adobe/asset-compute-devtool/src/assetComputeDevTool.js:XX:YY)
  • 原因:console.json asset compute项目的根目录中缺少文件
  • 分辨率: 下载新的 console.json 形成您的Adobe I/O项目
    1. 在console.adobe.io中,打开将Asset compute项目配置为使用的Adobe I/O项目
    2. 点按 下载 右上角的按钮
    3. 使用文件名将下载的文件保存到Asset compute项目的根目录 console.json

manifest.yml中的YAML缩进不正确

  • 错误: YAMLException:第X行、第Y列的映射条目的缩进错误:(通过标准输出自 aio app run 命令)
  • 原因: Yaml文件具有空格敏感性,您的缩进可能不正确。
  • 分辨率: 查看您的 manifest.yml 并确保所有缩进都正确。

memorySize限制设置过低

  • 错误: 本地Dev Server OpenWhiskError:PUThttps://adobeioruntime.net/api/v1/namespaces/xxx-xxx-xxx/actions/xxx-0.0.1/__secured_workeroverwrite=true返回HTTP 400(错误请求) — >“请求内容格式错误:请求失败:内存比允许的阈值134217728 B低64 MB”
  • 原因: A memorySize 工作人员在 manifest.yml 设置为低于错误消息报告的最小允许阈值(字节)。
  • 分辨率: 查看 memorySize 中的限制 manifest.yml 并确保它们都大于允许的最小阈值。

由于缺少private.key,开发工具无法启动

  • 错误: 本地Dev ServerError:在validatePrivateKeyFile中缺少必需的文件… (通过标准输出自 aio app run 命令)
  • 原因:ASSET_COMPUTE_PRIVATE_KEY_FILE_PATH 中的值 .env 文件,未指向 private.keyprivate.key 当前用户无法读取。
  • 分辨率: 查看 ASSET_COMPUTE_PRIVATE_KEY_FILE_PATH 中的值 .env 文件,并确保它包含指向 private.key 文件系统中的所有文件。

源文件下拉列表不正确

asset compute开发工具可能会进入提取陈旧数据的状态,这种情况在 源文件 下拉菜单显示不正确的项目。

  • 错误: 源文件下拉列表显示不正确的项目。
  • 原因: 过时的缓存浏览器状态导致
  • 分辨率: 在浏览器中,完全清除浏览器选项卡的“应用程序状态”、浏览器缓存、本地存储和Service Worker。

devToolToken查询参数缺失或无效

  • 错误: asset compute开发工具中的“未授权”通知
  • 原因: devToolToken 缺失或无效
  • 分辨率: 关闭“Asset compute开发工具”浏览器窗口,终止通过启动的任何正在运行的开发工具进程。 aio app run 命令,然后重新启动开发工具(使用 aio app run)。

无法删除源文件

  • 错误: 无法从开发工具UI中删除添加的源文件

  • 原因: 此功能尚未实施

  • 分辨率: 使用中定义的凭据登录到您的云存储提供商 .env. 找到开发工具使用的容器(也在 .env),导航到 文件夹,并删除任何源图像。 您可能需要执行中概述的步骤 源文件下拉列表不正确 如果删除的源文件继续显示在下拉菜单中,因为它们可能缓存在开发工具的“应用程序状态”本地。

    Microsoft Azure Blob存储

测试

测试执行期间未生成演绎版

  • 错误: 失败:未生成演绎版。

  • 原因: 辅助进程由于意外错误(如JavaScript语法错误)未能生成演绎版。

  • 分辨率: 查看测试执行的 test.log/build/test-results/test-worker/test.log. 找到此文件中与测试失败案例对应的部分,并检查错误。

    故障诊断 — 未生成演绎版

测试生成错误的演绎版,导致测试失败

  • 错误: 失败:演绎版“rendition.xxx”与预期不同。
  • 原因: 工作进程输出与不相同的演绎版 rendition.<extension> 在测试用例中提供。
    • 如果预期 rendition.<extension> 文件创建方式与测试用例中本地生成的演绎版不完全相同,测试可能会失败,因为比特之间存在一些差异。 例如,如果Asset compute工作进程使用API更改对比度,并通过调整Adobe Photoshop CC中的对比度创建预期结果,则文件可能显示相同,但位中的细微变化可能不同。
  • 分辨率: 通过导航到,查看测试中的演绎版输出 /build/test-worker/<worker-name>/<test-run-timestamp>/<test-case>/rendition.<extension>,并将其与测试用例中的预期演绎版文件进行比较。 要创建完全预期的资产,请执行下列任一操作:
    • 使用开发工具生成演绎版,验证它是否正确,并将其用作预期的演绎版文件
    • 或者,验证测试生成的文件: /build/test-worker/<worker-name>/<test-run-timestamp>/<test-case>/rendition.<extension>,验证它是否正确,并将其用作预期的演绎版文件

调试

Debugger未连接

  • 错误:处理启动项时出错:错误:无法连接到位于……的调试目标
  • 原因:Docker Desktop未在本地系统上运行。 通过查看VS代码调试控制台(“查看”>“调试控制台”)来验证这一点,确认报告了此错误。
  • 分辨率:开始 Docker Desktop并确认安装了必需的Docker映像.

断点未暂停

  • 错误:从可调试的开发工具运行Asset compute工作程序时,VS Code不会在断点处暂停。

未附加VS代码调试器

  • 原因: VS代码调试器已停止/断开连接。
  • 分辨率: 重新启动VS代码调试器,并通过查看VS代码调试输出控制台(查看>调试控制台)来验证其是否附加

辅助进程执行开始后附加的VS代码调试器

  • 原因: VS代码调试器在点击之前未连接 运行 在开发工具中。
  • 分辨率: 通过查看VS Code的Debug Console(“查看”>“Debug Console”),确保已附加Debugger,然后从开发工具中重新运行Asset compute工作程序。

Worker在调试时超时

  • 错误:调试控制台报告“操作将在 — XXX毫秒内超时”或 asset compute开发工具的 演绎版预览无限期旋转或
  • 原因:中定义的Worker超时 manifest.yml 调试期间超出了。
  • 分辨率:在中临时增加工作线程的超时 manifest.yml 或加速调试活动。

无法终止调试器进程

  • 错误Ctrl-C 不会终止调试器进程(npx adobe-asset-compute devtool)。

  • 原因:中的错误 @adobe/aio-cli-plugin-asset-compute 1.3.x,结果 Ctrl-C 未被识别为终止命令。

  • 分辨率:更新 @adobe/aio-cli-plugin-asset-compute 到版本1.4.1+

    $ aio update
    

    故障排除 — aio更新

部署

AEM中的资源缺少自定义演绎版

  • 错误: 已成功新建和重新处理资源,但缺少自定义演绎版

处理配置文件未应用于上级文件夹

  • 原因: 资产不存在于具有使用自定义工作线程的处理配置文件的文件夹下
  • 分辨率: 将处理配置文件应用到资源的上级文件夹

处理配置文件被较低的处理配置文件取代

  • 原因: 资产存在于应用了自定义工作程序处理配置文件的文件夹下,但已在该文件夹和资产之间应用了未使用客户工作程序的不同处理配置文件。
  • 分辨率: 合并或以其他方式协调两个处理配置文件,并删除中间处理配置文件

AEM中的资源处理失败

  • 错误: 资产上显示“资产处理失败”标记
  • 原因: 执行自定义工作进程时出错
  • 分辨率: 按照上的说明操作 调试Adobe I/O Runtime激活 使用 aio app logs.

在此页面上