全部產品
Search
文件中心

IoT Platform:CreateOTAStaticUpgradeJob

更新時間:Feb 13, 2025

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

使用說明

  • 若在調用CreateOTAFirmware介面建立升級包時,未指定“升級包可不通過驗證”,則調用本介面建立批量升級批次前,必須保證升級包已驗證成功。關於如何建立驗證升級包任務,請參見CreateOTAVerifyJob
  • 單次調用,對於定向升級,若直接傳入裝置名稱,則最多可對200個裝置發起升級任務;若使用待升級裝置列表檔案,則最多可對1,000,000個裝置發起升級任務,需提前調用GenerateDeviceNameListURL組建檔案URL,並按說明上傳裝置列表檔案。
  • 對多個裝置發起升級任務時,如果某裝置已經是目標版本,則過濾該裝置,繼續升級任務。
  • 同一裝置只能同時在一個升級批次中處於待升級或正在升級狀態。對處於待升級或正在升級狀態的裝置發起新的升級任務,後發起的任務會直接失敗。
  • 可以對單個升級包,同時發起多個靜態升級批次。
  • 當前僅中國的華東2(上海)地區下,支援使用MQTT協議下載升級包。

QPS限制

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

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

調試

您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。

請求參數

名稱 類型 是否必選 樣本值 描述
Action String CreateOTAStaticUpgradeJob

系統規定參數。取值:CreateOTAStaticUpgradeJob。

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必須成對傳入。
TargetSelection String ALL

升級範圍。

  • ALL:全量升級。
  • SPECIFIC:定向升級。
  • GRAY:灰階升級。
  • GROUP:分組升級。
IotInstanceId String iot-cn-0pp1n8t****

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

重要
  • 若有ID值,必須傳入該ID值,否則調用會失敗。
  • 若無執行個體概覽頁面或ID值,則無需傳入。

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

SrcVersion.N RepeatList V1.0.1

待升級版本號碼列表。

說明
  • 發起全量升級(TargetSelection=ALL)和灰階升級(TargetSelection=GRAY)任務時,可以傳入該參數。
  • 使用差分升級包發起全量升級和灰階升級任務時,該參數值需指定為差分升級包的待升級版本號碼(SrcVersion)。
  • 發起定向升級(TargetSelection=SPECIFIC)或分組升級(TargetSelection=GROUP)任務時,不能傳入該參數。
  • 可以調用QueryDeviceDetail,查看裝置OTA模組版本號碼(FirmwareVersion)。
  • 列表中不能有重複的版本號碼。
  • 最多可傳入10個版本號碼。
ScheduleTime Long 1577808000000

指定發起OTA升級的時間。

定時時間範圍需為目前時間的5分鐘後至7天內。取值為13位毫秒值時間戳記。

不傳入該參數,則表示立即升級。

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。

GrayPercent String 33.33

設定灰階比例。取值為字串格式的百分比,小數點後最多3位小數,系統計算結果向下取整。灰階升級的裝置至少為1個。

例如有100個待升級裝置,設定灰階升級的灰階比例為33.33,則系統計算結果為33。

升級範圍指定為灰階升級(TargetSelection=GRAY)時,需傳入此參數。

TargetDeviceName.N RepeatList deviceName1

定向升級的裝置名稱列表。

說明
  • 發起定向升級(TargetSelection=SPECIFIC)任務時,需傳入該參數或DnListFileUrl,不可同時傳入。
  • 使用差分升級包進行定向升級時,要升級的裝置的當前OTA模組版本號碼需與差分升級包的待升級版本號碼(SrcVersion)相同。
  • 可以調用QueryDeviceDetail,查看裝置OTA模組版本號碼(FirmwareVersion)。
  • 列表中的裝置所屬的產品必須與升級包所屬產品一致。
  • 列表中不能有重複的裝置名稱。
  • 最多可傳入200個裝置名稱。
ScheduleFinishTime Long 1577909000000

指定結束升級的時間。

結束時間距發起時間(ScheduleTime)最少1小時,最多為30天。取值為13位毫秒值時間戳記。

不傳入該參數,則表示不會強制結束升級。

OverwriteMode Integer 1

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

  • 1(預設):不覆蓋。若裝置已有升級任務,則只執行已有任務。
  • 2:覆蓋。裝置只執行新的升級任務。此時MultiModuleMode不能傳入true
說明 不覆蓋升級中的任務。
DnListFileUrl String https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.bin

定向升級裝置列表檔案的URL。

說明
  • 發起定向升級(TargetSelection=SPECIFIC)任務時,需傳入該參數或TargetDeviceName.N,不可同時傳入。
  • 請調用GenerateDeviceNameListURL組建檔案URL,並按說明上傳裝置列表檔案。
  • 整包升級時,會過濾列表中已經升級成功的裝置。
  • 差分升級時,會過濾列表中已經升級成功,和初始版本號碼跟升級包不相符的裝置。
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 CtjzCkNuOx***

分組ID。

僅當發起分組升級(TargetSelection=GROUP)任務時,需傳入該參數和GroupType

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

GroupType String LINK_PLATFORM

分組類型,僅可取值LINK_PLATFORM

僅當發起分組升級(TargetSelection=GROUP)任務時,需傳入該參數和GroupId

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。

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

調用API時,除了本文介紹的該API的特有請求參數,還需傳入公用請求參數。公用請求參數說明,請參見公用參數文檔

返回資料

名稱 類型 樣本值 描述
Code String MissingFirmwareId

調用失敗時,返回的錯誤碼。更多資訊,請參見錯誤碼

Data Struct

調用成功時,返回的升級批次資訊。更多資訊,請參見Data下參數說明。

JobId String wahVIzGkCMuAUE2gDERM02****

升級批次ID,升級批次的唯一識別碼。

UtcCreate String 2019-11-04T06:22:19.566Z

升級批次的建立時間,UTC格式。

ErrorMessage String FirmwareId is mandatory for this action.

調用失敗時,返回的出錯資訊。

RequestId String 29EC7245-0FA4-4BB6-B4F5-5F04818FDFB1

阿里雲為該請求產生的唯一識別碼。

Success Boolean true

是否調用成功。

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

樣本

請求樣本

http(s)://iot.cn-shanghai.aliyuncs.com/?Action=CreateOTAStaticUpgradeJob
&FirmwareId=nx3xxVvFdwvn6dim50PY03****
&ProductKey=a1Le6d0****
&Tag.1.Key=key1
&Tag.1.Value=value1
&TargetSelection=ALL
&MaximumPerMinute=1000
&RetryCount=1
&RetryInterval=60
&TimeoutInMinutes=1440
&SrcVersion.1=V1.0.1
&<公用請求參數>

正常返回樣本

XML格式

<CreateOTAStaticUpgradeJobResponse>
   <Data>
       <JobId>wahVIzGkCMuAUE2gDERM02****</JobId>
       <UtcCreate>2019-11-04T06:22:19.566Z</UtcCreate>
   </Data>
   <RequestId>29EC7245-0FA4-4BB6-B4F5-5F04818FDFB1</RequestId>
   <Success>true</Success>
</CreateOTAStaticUpgradeJobResponse>

JSON格式

{
  "Data": {
    "JobId": "wahVIzGkCMuAUE2gDERM02****",
    "UtcCreate": "2019-11-04T06:22:19.566Z"
  },
  "RequestId": "29EC7245-0FA4-4BB6-B4F5-5F04818FDFB1",
  "Success": true
}

錯誤碼

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