Ubuntu 22.04上Azure Device Update脚本更新遇错误0x30500005
Azure Device Update脚本更新报错ADUC_ERC_SCRIPT_HANDLER_MISSING_SCRIPTFILENAME_PROPERTY解决方法
问题描述
在Ubuntu 22.04系统上使用Azure Device Update执行设备更新时,apt类型(microsoft/apt:1)更新可正常运行,但使用脚本类型(microsoft/script:1)时,收到错误代码810549253(0x30500005),对应错误常量为ADUC_ERC_SCRIPT_HANDLER_MISSING_SCRIPTFILENAME_PROPERTY,提示脚本处理程序缺少脚本文件名属性。
待执行脚本(script_test.sh)
#!/bin/bash # 创建目录 mkdir -p /home/azureuser/this_was_create_by_adu # 在目录内创建指定内容的文本文件 echo "this file was generated by adu" > /home/azureuser/this_was_create_by_adu/generated_file.txt # 确认消息 echo "Directory and file have been created successfully."
原导入清单(script_test.importmanifest.json)
{ "updateId": { "name": "script", "provider": "me", "version": "7.0.0" }, "compatibility": [ { "manufacturer": "hp", "model": "elite" } ], "createdDateTime": "2024-10-23T09:33:11Z", "files": [ { "filename": "script_test.sh", "hashes": { "sha256": "lHKs3UsbWJAE3Svz3KwPCWibEofSPisKfB2rsbyIM4E=" }, "sizeInBytes": 328 } ], "instructions": { "steps": [ { "files": [ "script_test.sh" ], "handler": "microsoft/script:1", "handlerProperties": { "installedCriteria": "1.0", }, "type": "inline" } ] }, "manifestVersion": "5.0" }
错误日志
2024-11-05T15:39:52.8793Z 5742[7981] [I] Try to load a handler for current update manifest version 5 (handler: 'microsoft/update-manifest:5') [GetUpdateManifestHandler:114] 2024-11-05T15:39:52.8793Z 5742[7981] [I] Loading handler for 'microsoft/update-manifest:5'. [LoadUpdateContentHandlerExtension:208] 2024-11-05T15:39:52.8794Z 5742[7981] [I] Loading extension 'microsoft/update-manifest:5'. Reg file : /var/lib/adu/extensions/update_content_handlers/microsoft_update-manifest_5/content_handler.json [LoadExtensionLibrary:85] 2024-11-05T15:39:52.8794Z 5742[7981] [D] Determining contract version for 'microsoft/update-manifest:5'. [LoadUpdateContentHandlerExtension:303] 2024-11-05T15:39:52.8794Z 5742[7981] [D] Got 1.0 contract version for 'microsoft/update-manifest:5' handler [LoadUpdateContentHandlerExtension:331] 2024-11-05T15:39:52.8794Z 5742[7981] [D] Caching new handler for 'microsoft/update-manifest:5'. [LoadUpdateContentHandlerExtension:340] 2024-11-05T15:39:52.8797Z 5742[7981] [I] Action 'Download' complete. Result: 0 (failed), 810549253 (0x30500005) [ADUC_Workflow_WorkCompletionCallback:890] 2024-11-05T15:39:52.8797Z 5742[7981] [I] WorkCompletionCallback: Download failed. Going to state Failed [ADUC_Workflow_WorkCompletionCallback:1016] 2024-11-05T15:39:52.8797Z 5742[7981] [I] Setting UpdateState to Failed [ADUC_Workflow_SetUpdateStateHelper:1088] 2024-11-05T15:39:52.8797Z 5742[7981] [D] [ADUC_D2C_Message_SendAsync:526] ==== MULTI-LINE LOG BEGIN ==== Queueing message (t:0, c:0x64006e50, m:{"deviceUpdate":{"__t":"c","agent":{"lastInstallResult":{"stepResults":{"step_0":{"resultCode":0,"extendedResultCodes":"00000000","resultDetails":null}},"resultCode":0,"extendedResultCodes":"30500005,A0000FFF","resultDetails":""},"state":255,"workflow":{"action":3,"id":"aebe0066-67ba-4d78-a247-2656d91dd7c8"}}}})2024-11-05T15:39:52.8797Z 5742[7981] [D] [ADUC_D2C_Message_SendAsync:526] ==== MULTI-LINE LOG END ==== 2024-11-05T15:39:52.8815Z 5742[7981] [I] Workflow is Complete. [ADUC_Workflow_AutoTransitionWorkflow:758] 2024-11-05T15:39:53.2803Z 5742[5742] [D] context:0xb6b015a0 [DefaultIoTHubSendReportedStateCompletedCallback:205] 2024-11-05T15:39:53.2803Z 5742[5742] [D] D2C message processed successfully (t:0, r:0, content:0xb8465da0 ) [DefaultIoTHubSendReportedStateCompletedCallback:233] 2024-11-05T15:39:53.2803Z 5742[5742] [D] Send message completed (status:3) [OnUpdateResultD2CMessageCompleted:64] 2024-11-05T15:39:53.2804Z 5742[5742] [D] context:0xb6b01640 [DefaultIoTHubSendReportedStateCompletedCallback:205] 2024-11-05T15:39:53.2804Z 5742[5742] [D] D2C message processed successfully (t:1, r:0, content:0xb843b8c0 ) [DefaultIoTHubSendReportedStateCompletedCallback:233] 2024-11-05T15:39:53.2804Z 5742[5742] [D] Send message completed (status:3) [OnUpdateResultD2CMessageCompleted:64] 2024-11-05T15:39:53.2804Z 5742[5742] [D] Sending D2C message (t:0, retries:0). [ProcessMessage:390] 2024-11-05T15:39:53.2804Z 5742[5742] [D] [ADUC_D2C_Default_Message_Transport_Function:580] ==== MULTI-LINE LOG BEGIN ==== Sending D2C message: {"deviceUpdate":{"__t":"c","agent":{"lastInstallResult":{"stepResults":{"step_0":{"resultCode":0,"extendedResultCodes":"00000000","resultDetails":null}},"resultCode":0,"extendedResultCodes":"30500005,A0000FFF","resultDetails":""},"state":255,"workflow":{"action":3,"id":"aebe0066-67ba-4d78-a247-2656d91dd7c8"}}}}2024-11-05T15:39:53.2804Z 5742[5742] [D] [ADUC_D2C_Default_Message_Transport_Function:580] ==== MULTI-LINE LOG END ===
解决方法
1. 修正导入清单
错误原因是脚本处理程序需要明确指定要执行的脚本文件名,需在handlerProperties中添加scriptFileName属性,值为脚本文件名script_test.sh。修正后的清单如下:
{ "updateId": { "name": "script", "provider": "me", "version": "7.0.0" }, "compatibility": [ { "manufacturer": "hp", "model": "elite" } ], "createdDateTime": "2024-10-23T09:33:11Z", "files": [ { "filename": "script_test.sh", "hashes": { "sha256": "lHKs3UsbWJAE3Svz3KwPCWibEofSPisKfB2rsbyIM4E=" }, "sizeInBytes": 328 } ], "instructions": { "steps": [ { "files": [ "script_test.sh" ], "handler": "microsoft/script:1", "handlerProperties": { "installedCriteria": "1.0", "scriptFileName": "script_test.sh" }, "type": "inline" } ] }, "manifestVersion": "5.0" }
2. 确保脚本具备可执行权限
上传脚本前,执行以下命令添加可执行权限:
chmod +x script_test.sh
之后重新计算脚本的SHA256哈希值,替换清单中hashes.sha256字段的值,确保文件完整性校验通过。
内容的提问来源于stack exchange,提问作者Marcelo Luna
相关产品推荐
相关产品推荐

