全部產品
Search
文件中心

IoT Platform:CreateOTADynamicUpgradeJob

更新時間:Feb 13, 2025

調用該介面建立動態升級批次。

使用說明

  • 若未在調用CreateOTAFirmware建立升級包時指定升級包無需驗證,則調用本介面建立批量升級批次前,必須保證升級包已驗證成功。建立驗證升級包任務,請參見CreateOTAVerifyJob
  • 同一裝置只能同時在一個升級批次中處於待升級或正在升級狀態。對處於待升級或正在升級狀態的裝置發起新的升級任務,後發起的任務會直接失敗。
  • 同一升級包下,只能有一個狀態為執行中的動態升級批次。
  • 如果同一個裝置處於不同升級包的動態升級策略中,則裝置執行最新發起的動態升級。
  • 建立動態升級批次後,系統將自動建立對應的動態升級策略。可以調用CancelOTAStrategyByJob取消動態升級策略。
  • 目前僅中國的華東2(上海)地區下,支援使用MQTT協議下載升級包。

QPS限制

單個阿里雲帳號調用該介面的每秒請求數(QPS)最大限制為20。

說明 RAM使用者共用阿里雲帳號配額。

調試

您可以在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.ValueTag.N.Key必須成對傳入。
Tag.N.Value String value1

批次標籤value。長度限制為1~1024個字元。支援最多添加10個批次標籤。所有批次標籤key和value的長度總和,不能超過4096個字元。

說明 批次標籤可以不傳入。是否必選,表示如果傳入批次標籤Tag,Tag.N.ValueTag.N.Key必須成對傳入。
IotInstanceId String iot-cn-0pp1n8t****

執行個體ID。您可在物聯網平台控制台的執行個體概覽頁面,查看當前執行個體的ID

重要
  • 若有ID值,必須傳入該ID值,否則調用會失敗。
  • 若無ID值,則無需傳入。

執行個體的更多資訊,請參見執行個體概述

SrcVersion.N RepeatList V1.0.1

待升級版本號碼列表。

  • 如果傳入該參數,則不能傳入GroupIdGroupType
  • 如果不傳入該參數,則必須傳入GroupIdGroupType
說明
  • 基於版本對差分升級包發起動態升級任務時,該參數值必須與差分升級包的待升級版本號碼(SrcVersion)相同。

    基於動態分組對差分升級包發起動態升級任務時,無需傳入該參數。

  • 可以調用QueryDeviceDetail,查看裝置OTA模組版本號碼FirmwareVersion
  • 列表中不能有重複的版本號碼。
  • 最多可傳入30個版本號碼。
RetryInterval Integer 60

裝置升級失敗後,自動重試的時間間隔,單位為分鐘。可選值:

  • 0:立即重試。
  • 10:10分鐘後重試。
  • 30:30分鐘後重試。
  • 60:60分鐘(即1小時)後重試。
  • 1440:1,440分鐘(即24小時)後重試。
重要 RetryInterval的值需要小於TimeoutInMinutes的值。例如:
  • TimeoutInMinutes的值為60分鐘,RetryInterval的值最大可設定為30。
  • TimeoutInMinutes的值為1440分鐘,RetryInterval的值最大可設定為60。

RetryInterval需設定為24小時後重試,則建議不傳入TimeoutInMinutes。因升級逾時後,不會再觸發升級重試。

不傳入此參數,則表示不重試。

RetryCount Integer 1

自動重試次數。

如果傳入RetryInterval參數,則需傳入該參數。

可選值:

  • 1:1次。
  • 2:2次。
  • 5:5次。
TimeoutInMinutes Integer 1440

裝置升級逾時時間,超過指定時間後,裝置未完成升級,則升級失敗。單位為分鐘,取值範圍為1~1,440。

說明
  • 從裝置首次上報進度開始計算時間。升級期間若裝置多次上下線,觸發物聯網平台多次推送升級包,都始終以裝置最開始的第一次上報升級進度時間作為開始時間。
  • 因逾時而導致的升級失敗,物聯網平台不會觸發自動重試邏輯。

不傳入該參數,則表示裝置升級沒有逾時限制。

MaximumPerMinute Integer 1000

每分鐘最多向多少個裝置推升級包下載URL。取值範圍:10~10,000。

不傳入該參數,則取預設值10,000。

OverwriteMode Integer 2

是否覆蓋之前的升級任務。取值:

  • 1(預設):不覆蓋。若裝置已有升級任務,則只執行已有任務。
  • 2:覆蓋。裝置只執行新的升級任務。此時MultiModuleMode不能傳入true
說明 不覆蓋升級中的任務。
DynamicMode Integer 1

動態升級模式。取值範圍:

  • 1(預設):除了升級當前滿足升級條件的裝置,還將持續檢查裝置是否滿足升級條件,對滿足升級條件的裝置進行升級。
  • 2:僅對後續上報新版本號碼的裝置生效。
NeedPush Boolean true

物聯網平台是否主動向裝置推送升級任務。

  • true(預設):是。批次任務建立完成後,物聯網平台主動將升級任務,直接推送給升級範圍內的線上裝置。

    此時,裝置仍可主動向物聯網平台發起請求,來擷取OTA升級任務資訊。

  • false:否。裝置必須通過向物聯網平台發起請求,來擷取OTA升級任務資訊。
NeedConfirm Boolean false

如需自主控制裝置OTA升級時,可配置此參數,通過手機App來控制,裝置是否可進行OTA升級。手機App需您自行開發。

  • false(預設):否。直接按照NeedPush設定,擷取OTA升級任務資訊。
  • true:是。裝置無法擷取OTA升級任務,需App側確認OTA升級後,才能按照NeedPush設定,擷取OTA升級任務資訊。
GroupId String IwOwQj7DJ***

分組ID。

  • 如果傳入該參數,則必須同時傳入GroupType,且不能傳入SrcVersion.N
  • 如果不傳入該參數,則無需傳入GroupType,且必須傳入SrcVersion.N

您可調用QueryDeviceGroupList介面查詢分組ID(GroupId)。

GroupType String LINK_PLATFORM_DYNAMIC

分組類型,僅可取值LINK_PLATFORM_DYNAMIC(動態分組)。

  • 如果傳入該參數,則必須同時傳入GroupId,且不能傳入SrcVersion.N
  • 如果不傳入該參數,則無需傳入GroupId,且必須傳入SrcVersion.N
DownloadProtocol String HTTPS

升級包下載協議,可選:HTTPS(預設)或MQTT。裝置端收到物聯網平台推送的升級包下載資訊後,通過該協議下載升級包。

重要 使用MQTT協議下載升級包,必須符合以下條件:
  • 支援的地區:僅中國的華東2(上海)、華北2(北京)和華南1(深圳)。
  • OTA升級包:僅包含一個檔案,且檔案大小不超過16 MB。
  • 裝置端SDK:必須使用物聯網平台提供的C語言Link SDK最新版本的軟體包,開發OTA升級和MQTT下載檔案的能力。詳細內容,請參見使用MQTT協議下載升級包的OTA升級程式碼範例
MultiModuleMode Boolean false

裝置是否支援多模組同時升級。

  • false(預設):否,裝置不支援多模組同時升級。
  • true:是,裝置支援多個不同模組同時獨立升級。MultiModuleModetrue時,OverwriteMode不能傳入2

    相同模組下的升級任務會被覆蓋,但不會覆蓋升級中的任務。多個不同模組升級互不影響。

重要
  • 支援的執行個體:企業版執行個體和新版公用執行個體。
  • 裝置端SDK:必須使用物聯網平台提供的裝置端C語言4.x版本的Link SDK。
  • 發起基於分組的動態升級批次:MultiModuleModeOverwriteMode的設定,必須與分組對應的存量動態升級批次中的設定保持一致。

更多資訊,請參見裝置支援多模組同時升級說明表

調用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

表示是否調用成功。

  • true:調用成功。
  • false:調用失敗。

樣本

請求樣本

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
}

錯誤碼

訪問錯誤中心查看更多錯誤碼。