调用该接口创建动态升级批次。
使用说明
- 若未在调用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
}