asset compute可扩展性故障诊断
创建对象:
- 中级
- 有经验的
- 开发人员
以下是为AEM Assets开发和部署自定义Asset compute工作程序时可能遇到的常见问题和错误以及解决方案的索引。
开发
返回的部分已绘制/损坏
-
错误:呈现版本未完全呈现(图像时),或者已损坏,无法打开。
-
原因:辅助进程的
renditionCallback
函数在完全写入rendition.path
之前退出。 -
解决方案:查看自定义工作进程代码并确保使用
await
同步执行所有异步调用。
开发工具
asset compute项目中缺少Console.json文件
-
错误: 错误:在async setupAssetCompute (
.../node_modules/@adobe/asset-compute-devtool/src/assetComputeDevTool.js:XX:YY
)验证(.../node_modules/@adobe/asset-compute-client/lib/integrationConfiguration.js:XX:YY
)时缺少必需的文件 -
原因: Asset compute项目的根目录中缺少
console.json
文件 -
分辨率: 从您的Adobe I/O项目下载新的
console.json
- 在console.adobe.io中,打开将Asset compute项目配置为使用的Adobe I/O项目
- 点按右上方的 下载 按钮
- 使用文件名
console.json
将下载的文件保存到Asset compute项目的根目录下
manifest.yml中的YAML缩进不正确
- 错误: YAMLException:第X行、第Y列上的映射条目缩进错误:(通过从
aio app run
命令输出的标准) - 原因: Yaml文件具有空格敏感性,您的缩进可能不正确。
- 分辨率: 检查您的
manifest.yml
并确保所有缩进均正确。
memorySize限制设置过低
- 错误: 本地开发服务器OpenWhiskError:PUThttps://adobeioruntime.net/api/v1/namespaces/xxx-xxx-xxx/actions/xxx-0.0.1/__secured_workeroverwrite=true返回HTTP 400(错误请求) —>“请求内容格式错误:要求失败:内存比允许的阈值134217728 B低64 MB”
- 原因:
manifest.yml
中辅助进程的memorySize
限制设置为低于错误消息所报告的最小允许阈值(字节)。 - 分辨率: 查看
manifest.yml
中的memorySize
限制并确保它们都大于允许的最小阈值。
由于缺少private.key,开发工具无法启动
- 错误: 本地Dev ServerError:在validatePrivateKeyFile中缺少必需的文件… (通过
aio app run
命令中的标准输出) - 原因:
.env
文件中的ASSET_COMPUTE_PRIVATE_KEY_FILE_PATH
值不指向private.key
或private.key
当前用户不可读。 - 分辨率: 查看
.env
文件中的ASSET_COMPUTE_PRIVATE_KEY_FILE_PATH
值,并确保它包含文件系统上private.key
的完整、绝对路径。
Source文件下拉列表不正确
asset compute开发工具可能会进入提取陈旧数据的状态,在 Source文件 显示不正确项目的下拉列表中最为明显。
- 错误: Source文件下拉列表显示不正确的项目。
- 原因: 过时的缓存浏览器状态导致
- 解决办法: 在浏览器中完全清除浏览器选项卡的“应用程序状态”、浏览器缓存、本地存储和Service Worker。
devToolToken查询参数缺失或无效
- 错误: Asset compute开发工具中的“未授权”通知
- 原因:
devToolToken
缺失或无效 - 解决方法: 关闭Asset compute开发工具浏览器窗口,终止通过
aio app run
命令启动的任何正在运行的开发工具进程,然后重新启动开发工具(使用aio app run
)。
无法删除源文件
-
错误: 无法从开发工具UI中删除添加的源文件
-
原因: 此功能尚未实现
-
分辨率: 使用
.env
中定义的凭据登录到您的云存储提供商。 找到开发工具使用的容器(也在.env
中指定),导航到 源 文件夹,并删除任何源图像。 如果已删除的源文件继续显示在下拉列表中,则您可能需要执行Source文件下拉列表中所述的步骤不正确,因为这些文件可能缓存在开发工具“应用程序状态”的本地。
测试
测试执行期间未生成演绎版
-
错误: 失败:未生成演绎版。
-
原因: 辅助进程由于意外错误(如JavaScript语法错误)未能生成演绎版。
-
解决方案: 在
/build/test-results/test-worker/test.log
查看测试执行的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>
处验证测试生成的文件,验证它是否正确,并将其用作预期的演绎版文件
调试
调试器未附加
- 错误:处理启动项时出错:错误:无法连接到位于……的调试目标
- 原因: Docker桌面未在本地系统上运行。 通过查看VS代码调试控制台(“查看”>“调试控制台”)来验证此设置,确认报告了此错误。
- 分辨率:启动Docker Desktop并确认已安装必需的Docker映像。
断点未暂停
- 错误:从可调试的开发工具运行Asset compute工作进程时,VS代码不会在断点处暂停。
未附加VS代码调试器
- 原因: VS代码调试器已停止/断开连接。
- 分辨率: 重新启动VS代码调试器,并通过观看VS代码调试输出控制台(“视图”>“调试控制台”)来验证其是否附加
辅助进程执行开始后附加的VS代码调试器
- 原因: VS代码调试器在点按“开发工具”中的 运行 之前未附加。
- 解决方法: 通过查看VS代码的Debug Console(“视图”>“调试控制台”),确保已附加Asset compute程序,然后从开发工具中重新运行调试程序。
Worker在调试时超时
- 错误:调试控制台报告“操作将在 — XXX毫秒内超时”或Asset compute开发工具的演绎版预览无限期旋转,或
- 原因:调试期间超出了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
部署
AEM中的资源缺少自定义演绎版
- 错误: 已成功新建和重新处理资源进程,但缺少自定义呈现版本
处理配置文件未应用于上级文件夹
- 原因: 该资产不存在于具有使用自定义工作线程的处理配置文件的文件夹下
- 分辨率: 将处理配置文件应用到资源的上级文件夹
处理配置文件被较低的处理配置文件取代
- 原因: 资产存在于应用了自定义工作进程处理配置文件的文件夹下,但已在该文件夹和资产之间应用了不使用客户工作进程的其他处理配置文件。
- 分辨率: 合并或以其他方式协调两个处理配置文件并删除中间处理配置文件
AEM中的资源处理失败
- 错误: 资产处理失败徽章显示在资产上
- 原因: 执行自定义工作进程时出错
- 分辨率: 按照使用
aio app logs
调试Adobe I/O Runtime激活中的说明进行操作。