我的物联网项目中有一个要求,我需要更新物联网连接设备的应用程序代码或部分应用程序代码,比如应用程序版本或应用程序日程更新等。
我该怎么做到这一点?到目前为止,我发现云前端或代码部署很有用但不直接用于此类目的。任何其他服务都可以帮助我实现aws中所需的解决方案?
感谢。
答案 0 :(得分:1)
如果您使用的是Android设备,那么您可以使用AsyncTask从S3存储桶中获取最新信息并调用post下载方法来安装apk参考答案@链接
答案 1 :(得分:1)
合理的模式是使用AWS IoT中的Device Shadow存储报告状态,即设备的当前固件信息。
{
"reported": {
"firmware": {
"version": "1.0.0",
"name": "linux-3.8.0-armeabi"
}
}
}
如果要在设备上触发固件升级,可以在所需状态中引用新版本及其指向(例如S3桶)。
{
"reported": {
"firmware": {
"version": "1.0.0",
"name": "linux-3.8.0-armeabi"
}
},
"desired": {
"firmware": {
"version": "1.1.0",
"name": "linux-4.0.0-armeabi",
"url": "https://s3-<region>.amazonaws.com/<bucket>/<file>"
}
}
}
当发生此更改时,设备将收到 delta 事件,指示其影子文档发生更改,并且一旦他注意到新的固件条目,就会开始下载新固件在期望的状态中描述。
注意:此方法的一个优点是即使设备处于离线状态也能正常工作,当它们重新联机时,它们会与阴影同步。
有时,制造商希望控制固件在其设备机群上的部署方式,例如他们可能希望:
如果要对部署进行细化,可以考虑这些约束,您可以使用上述方法与设备注册表中Things Attributes的使用相结合,以便在您要更新所需内容时状态,您只需选择与预定义属性匹配的设备即可。