调用该接口创建动态升级批次。
使用说明
- 若未在调用CreateOTAFirmware创建升级包时指定升级包无需验证,则调用本接口创建批量升级批次前,必须保证升级包已验证成功。创建验证升级包任务,请参见CreateOTAVerifyJob。
- 同一设备只能同时在一个升级批次中处于待升级或正在升级状态。对处于待升级或正在升级状态的设备发起新的升级任务,后发起的任务会直接失败。
- 同一升级包下,只能有一个状态为执行中的动态升级批次。
- 如果同一个设备处于不同升级包的动态升级策略中,则设备执行最新发起的动态升级。
- 创建动态升级批次后,系统将自动创建对应的动态升级策略。可以调用CancelOTAStrategyByJob取消动态升级策略。
-
目前仅中国的华东2(上海)、华北2(北京)和华南1(深圳)地域下,支持使用MQTT协议下载升级包。
- 目前仅华东2(上海)地域下,企业版实例和新版公共实例,支持创建动态分组的动态升级批次。实例详细说明,请参见实例管理。
QPS限制
单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求参数
名称 |
类型 |
是否必选 |
示例值 |
描述 |
Action | String | 是 | CreateOTADynamicUpgradeJob | 系统规定参数。取值:CreateOTADynamicUpgradeJob。 |
FirmwareId | String | 是 | nx3xxVvFdwvn6dim50PY03**** | 升级包ID,升级包的唯一标识符。 升级包ID是调用CreateOTAFirmware创建升级包时,返回的参数之一。 您也可以调用ListOTAFirmware接口,从返回参数中查看。 |
ProductKey | String | 是 | a1Le6d0**** | 升级包所属产品的ProductKey。 ProductKey是物联网平台为产品颁发的全局唯一标识符。您可以在物联网平台控制台或调用QueryProductList,查看当前账号下所有产品的信息。 |
Tag.N.Key | String | 是 | key1 | 批次标签key。仅支持英文字母、数字、半角句号(.),长度限制为1~30个字符。支持最多添加10个批次标签。 批次标签将在向设备推送升级通知时下发给设备。 说明 批次标签可以不传入。是否必选的是,表示如果传入批次标签Tag,Tag.N.Value与Tag.N.Key必须成对传入。 |
Tag.N.Value | String | 是 | value1 | 批次标签value。长度限制为1~1024个字符。支持最多添加10个批次标签。所有批次标签key和value的长度总和,不能超过4096个字符。 说明 批次标签可以不传入。是否必选的是,表示如果传入批次标签Tag,Tag.N.Value与Tag.N.Key必须成对传入。 |
IotInstanceId | String | 否 | iot-cn-0pp1n8t**** | 实例ID。您可在物联网平台控制台的实例概览页面,查看当前实例的ID。 重要
实例的更多信息,请参见实例概述。 |
SrcVersion.N | RepeatList | 否 | V1.0.1 | 待升级版本号列表。
说明
|
RetryInterval | Integer | 否 | 60 | 设备升级失败后,自动重试的时间间隔,单位为分钟。可选值:
重要 RetryInterval的值需要小于TimeoutInMinutes的值。例如:
若RetryInterval需设置为24小时后重试,则建议不传入TimeoutInMinutes。因升级超时后,不会再触发升级重试。 不传入此参数,则表示不重试。 |
RetryCount | Integer | 否 | 1 | 自动重试次数。 如果传入RetryInterval参数,则需传入该参数。 可选值:
|
TimeoutInMinutes | Integer | 否 | 1440 | 设备升级超时时间,超过指定时间后,设备未完成升级,则升级失败。单位为分钟,取值范围为1~1,440。 说明
不传入该参数,则表示设备升级没有超时限制。 |
MaximumPerMinute | Integer | 否 | 1000 | 每分钟最多向多少个设备推升级包下载URL。取值范围:10~10,000。 不传入该参数,则取默认值10,000。 |
OverwriteMode | Integer | 否 | 2 | 是否覆盖之前的升级任务。取值:
说明 不覆盖升级中的任务。 |
DynamicMode | Integer | 否 | 1 | 动态升级模式。取值范围:
|
NeedPush | Boolean | 否 | true | 物联网平台是否主动向设备推送升级任务。
|
NeedConfirm | Boolean | 否 | false | 如需自主控制设备OTA升级时,可配置此参数,通过手机App来控制,设备是否可进行OTA升级。手机App需您自行开发。
|
GroupId | String | 否 | IwOwQj7DJ*** | 分组ID。
您可调用QueryDeviceGroupList接口查询分组ID(GroupId)。 |
GroupType | String | 否 | LINK_PLATFORM_DYNAMIC | 分组类型,仅可取值LINK_PLATFORM_DYNAMIC(动态分组)。
|
DownloadProtocol | String | 否 | HTTPS | 升级包下载协议,可选:HTTPS(默认)或MQTT。设备端收到物联网平台推送的升级包下载信息后,通过该协议下载升级包。 重要 使用MQTT协议下载升级包,必须符合以下条件:
|
MultiModuleMode | Boolean | 否 | false | 设备是否支持多模块同时升级。
重要
更多信息,请参见设备支持多模块同时升级说明表。 |
调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见公共参数文档。
返回数据
名称 |
类型 |
示例值 |
描述 |
Code | String | iot.system.SystemException | 调用失败时,返回的错误码。更多信息,请参见错误码。 |
Data | Struct | 调用成功时,返回的升级批次信息。详情见以下Data包含的参数。 |
|
JobId | String | XUbmsMHmkqv0PiAG****010001 | 升级批次ID,升级批次的唯一标识符。 |
UtcCreate | String | 2019-05-10T02:18:53.000Z | 升级批次的创建时间,UTC格式。 |
ErrorMessage | String | 系统异常 | 调用失败时,返回的出错信息。 |
RequestId | String | 9F41D14E-CB5F-4CCE-939C-057F39E688F5 | 阿里云为该请求生成的唯一标识符。 |
Success | Boolean | true | 表示是否调用成功。
|
示例
请求示例
http(s)://iot.cn-shanghai.aliyuncs.com/?Action=CreateOTADynamicUpgradeJob
&FirmwareId=nx3xxVvFdwvn6dim50PY03****
&ProductKey=a1Le6d0****
&Tag.1.Key=key1
&Tag.1.Value=value1
&MaximumPerMinute=1000
&RetryCount=1
&RetryInterval=60
&TimeoutInMinutes=1440
&SrcVersion.1=V1.0.1
&OverwriteMode=2
&<公共请求参数>
正常返回示例
XML
格式
<CreateOTADynamicUpgradeJobResponse>
<Data>
<JobId>wahVIzGkCMuAUE2gDERM02****</JobId>
<UtcCreate>2019-11-04T06:22:19.566Z</UtcCreate>
</Data>
<RequestId>29EC7245-0FA4-4BB6-B4F5-5F04818FDFB1</RequestId>
<Success>true</Success>
</CreateOTADynamicUpgradeJobResponse>
JSON
格式
{
"Data": {
"JobId": "XUbmsMHmkqv0PiAG****010001",
"UtcCreate": "2019-05-10T02:18:53.000Z"
},
"RequestId": "9F41D14E-CB5F-4CCE-939C-057F39E688F5",
"Success": true
}