嵌套边缘场景下启动Azure设备更新代理时DO连接字符串设置失败
解决Azure Device Update Agent启动失败:Failed to set DO connection string错误
问题背景
在Ubuntu 18.04环境中完成以下操作后,启动Azure Device Update Agent失败:
- 安装Azure Identity Service,在
config.toml中配置主连接字符串 - 通过克隆仓库编译安装Azure Device Update Agent,将
du-config.json中的连接类型设为AIS并清空连接字符串字段
启动时出现以下错误日志:
[E] Failed to set DO connection string in Nested Edge scenario, result: 0x00000000 [StartupAgent] [I] Agent exited with code 1 [main] [I] Agent is shutting down with signal 0. [ShutdownAgent] [I] De-initializing command listener thread [UninitializeCommandListenerThread] [I] ADUC agent stopping [AzureDeviceUpdateCoreInterface_Destroy] [I] Calling ADUC_Unregister [ADUC_MethodCall_Unregister]
服务状态显示:
deviceupdate-agent.service: Main process exited, code=exited, status=1/FAILURE
已尝试手动创建缺失的/etc/deliveryoptimization-agent目录并配置权限,但问题未解决:
sudo mkdir /etc/deliveryoptimization-agent sudo chgrp -R do /etc/deliveryoptimization-agent sudo chown do:do /etc/deliveryoptimization-agent sudo chmod 0750 /etc/deliveryoptimization-agent
排查与解决方案
1. 检查Delivery Optimization (DO) 服务状态与配置
ADU Agent依赖DO服务完成内容分发,需确保DO服务正常运行且配置正确:
- 查看DO服务状态:
sudo systemctl status deliveryoptimization-agent - 若服务未启动,尝试启动并设置开机自启:
sudo systemctl start deliveryoptimization-agent sudo systemctl enable deliveryoptimization-agent - 检查DO配置文件是否存在,若缺失需创建基础配置:
sudo tee /etc/deliveryoptimization-agent/deliveryoptimization-agent.conf <<EOF [DeliveryOptimization] CacheDirectory=/var/cache/deliveryoptimization LogLevel=Information EOF - 确保DO配置文件权限正确:
sudo chown do:do /etc/deliveryoptimization-agent/deliveryoptimization-agent.conf sudo chmod 0640 /etc/deliveryoptimization-agent/deliveryoptimization-agent.conf
2. 验证Azure Identity Service (AIS) 配置完整性
ADU Agent使用AIS进行身份验证,需确认AIS配置无误:
- 检查
config.toml中的主连接字符串格式是否正确,确保无拼写错误或多余字符 - 验证AIS服务状态:
sudo systemctl status azure-identity-service - 重启AIS服务以加载最新配置:
sudo systemctl restart azure-identity-service
3. 检查ADU Agent配置文件权限
确保du-config.json的权限允许ADU Agent进程读取:
sudo chown adu:adu /etc/adu/du-config.json sudo chmod 0640 /etc/adu/du-config.json
4. 查看详细日志定位问题
启用ADU Agent的详细日志输出,获取更多错误细节:
- 修改ADU Agent服务配置文件(通常位于
/lib/systemd/system/deviceupdate-agent.service),在ExecStart行添加日志参数:ExecStart=/usr/bin/AducIotAgent --log-level trace - 重新加载服务配置并重启ADU Agent:
sudo systemctl daemon-reload sudo systemctl restart deviceupdate-agent - 查看详细日志:
journalctl -u deviceupdate-agent -f
5. 重新构建并安装ADU Agent
若上述步骤无效,尝试重新构建ADU Agent以确保依赖集成正确:
# 进入ADU Agent仓库目录 cd /path/to/iot-hub-device-update # 清理旧构建文件 make clean # 重新构建并安装 make && sudo make install
内容的提问来源于stack exchange,提问作者Gustavo Nóbrega
相关产品推荐
相关产品推荐

