すべてのプロダクト
Search
ドキュメントセンター

IoT Platform:CreateOTADynamicUpgradeJob

最終更新日:Apr 17, 2025

動的アップデートバッチを作成します。

使用方法

  • CreateOTAFirmware 操作を呼び出すときに、アップデートパッケージの検証が不要であることを指定できます。そうでない場合は、CreateOTADynamicUpgradeJob 操作を呼び出してアップデートバッチを作成する前に、アップデートパッケージが検証済みであることを確認する必要があります。アップデートパッケージを検証するタスクの作成方法の詳細については、「CreateOTAVerifyJob」をご参照ください。

  • 各デバイスは、1 つのアップデートタスクでのみ保留中またはアップデート中のステータスになることができます。保留中またはアップデート中のステータスのデバイスに対して別のアップデートタスクを開始すると、アップデートタスクは失敗します。

  • 各アップデートパッケージは、実行状態の動的アップデートタスクを 1 つだけ持つことができます。

  • デバイスが異なるアップデートパッケージの動的アップデートポリシーに含まれている場合、デバイスは最新の動的アップデートを実行します。

  • 動的アップデートジョブが作成されると、システムは対応する動的アップデートポリシーを自動的に作成します。CancelOTAStrategyByJob 操作を呼び出して、動的アップデートポリシーをキャンセルできます。

  • 中国 (上海) リージョンにあるデバイスのみが、MQTT プロトコルを介してアップデートパッケージをダウンロードできます。

QPS 制限

各 Alibaba Cloud アカウントは、最大 20 クエリ/秒 (QPS) を実行できます。

説明

Alibaba Cloud アカウントの Resource Access Management (RAM) ユーザーは、アカウントのクォータを共有します。

デバッグ

OpenAPI Explorer は署名値を自動的に計算します。便宜上、OpenAPI Explorer でこの操作を呼び出すことをお勧めします。OpenAPI Explorer は、さまざまな SDK 用の操作のサンプルコードを動的に生成します。

リクエストパラメーター

パラメーター

タイプ

必須

例

説明

Action

String

はい

CreateOTADynamicUpgradeJob

実行する操作。値を CreateOTADynamicUpgradeJob に設定します。

FirmwareId

String

はい

nx3xxVvFdwvn6dim50PY03****

アップデートパッケージの ID。

CreateOTAFirmware 操作を呼び出してアップデートパッケージを作成すると、アップデートパッケージ ID が返されます。

ListOTAFirmware 操作を呼び出して ID を取得することもできます。

ProductKey

String

はい

a1Le6d0****

アップデートパッケージが属するプロダクトの ProductKey。

ProductKey は、IoT Platform におけるプロダクトの一意の識別子です。IoT Platform コンソールで、または QueryProductList 操作を呼び出すことで、現在の Alibaba Cloud アカウント内のすべてのプロダクトに関する情報を表示できます。

Tag.N.Key

String

はい

key1

アップデートバッチタグのキー。キーは 1 ~ 30 文字で、文字、数字、ピリオド (.) を含めることができます。アップデートバッチごとに最大 10 個のタグを追加できます。

アップデートバッチのタグは、IoT Platform がこれらのデバイスにアップデート通知をプッシュするときにデバイスに送信されます。

説明

アップデートバッチタグはオプションです。タグを指定する場合は、Tag.N.Value パラメーターと Tag.N.Key パラメーターをペアで指定する必要があります。

Tag.N.Value

String

はい

value1

アップデートバッチタグの値。値は 1 ~ 1,024 文字である必要があります。アップデートバッチごとに最大 10 個のタグを追加できます。すべてのアップデートバッチのタグキーとタグ値の合計の長さは、4,096 文字を超えることはできません。

説明

アップデートバッチタグはオプションです。タグを指定する場合は、Tag.N.Value パラメーターと Tag.N.Key パラメーターをペアで指定する必要があります。

IotInstanceId

String

いいえ

iot-cn-0pp1n8t****

インスタンスの ID。インスタンスの ID は、IoT Platform コンソールの 概要 ページで確認できます。

重要
  • インスタンスに ID がある場合は、このパラメーターに ID を指定する必要があります。インスタンス ID を指定しないと、呼び出しは失敗します。

  • インスタンスに ID が生成されていない場合は、このパラメーターを設定する必要はありません。

詳細については、「概要」をご参照ください。

SrcVersion.N

RepeatList

いいえ

V1.0.1

アップデート対象のファームウェアバージョンのリスト。

  • このパラメーターを指定する場合は、GroupId パラメーターと GroupType パラメーターを指定しないでください。

  • このパラメーターを指定しない場合は、GroupId パラメーターと GroupType パラメーターを指定する必要があります。

説明
  • 差分アップデートパッケージを使用してバージョンに基づいて動的アップデートタスクを実行する場合、このパラメーターの値は SrcVersion の値と同じである必要があります。

    差分アップデートパッケージを使用して動的グループで動的アップデートタスクを実行する場合、このパラメーターを指定する必要はありません。

  • QueryDeviceDetail 操作を呼び出し、レスポンスの 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 パラメーターの値が 1440 に設定されている場合は、TimeoutInMinutes パラメーターを指定しないことをお勧めします。アップデートがタイムアウトした場合、再試行は実行されません。

このパラメーターを指定しない場合、再試行は実行されません。

RetryCount

Integer

いいえ

1

自動再試行回数。

RetryInterval パラメーターを指定する場合は、このパラメーターも指定する必要があります。

有効な値:

  • 1: 1 回再試行します。

  • 2: 2 回再試行します。

  • 5: 5 回再試行します。

TimeoutInMinutes

Integer

いいえ

1440

アップデートのタイムアウト期間。指定された期間内にデバイスがアップデートされない場合、タイムアウトエラーが発生します。単位:分。有効な値:1 ~ 1440。

説明
  • タイムアウト期間は、指定されたデバイスが初めてアップデートの進捗状況を送信した時点から開始されます。アップデート中、デバイスがオンラインとオフラインを複数回繰り返すため、アップデートパッケージが指定されたデバイスに繰り返しプッシュされる場合があります。アップデート期間の開始時刻は変更されません。

  • タイムアウトが原因でアップデートに失敗した場合、再試行はトリガーされません。

このパラメーターを指定しない場合、タイムアウトエラーは発生しません。

MaximumPerMinute

Integer

いいえ

1000

アップデートパッケージのダウンロード URL が 1 分あたりにプッシュされるデバイスの最大数。有効な値:10 ~ 10000。

デフォルト値:10000。

OverwriteMode

Integer

いいえ

2

以前のアップデートタスクを上書きするかどうかを指定します。デフォルト値:1。有効な値:

  • 1: 以前のアップデートタスクは上書きされません。デバイスにすでにアップデートタスクがある場合、以前のアップデートタスクが実装されます。

  • 2: 以前のアップデートタスクは上書きされます。現在のアップデートタスクのみが実装されます。この場合、MultiModuleMode を true に設定することはできません。

説明

進行中のアップデートタスクは上書きされません。

DynamicMode

Integer

いいえ

1

動的アップデートのモード。デフォルト値:1。有効な値:

  • 1: 条件を満たすデバイスを常にアップデートします。

  • 2: 後で最新のファームウェアバージョンを送信するデバイスのみをアップデートします。

NeedPush

Boolean

いいえ

true

IoT Platform からデバイスにアップデートタスクを自動的にプッシュするかどうかを指定します。デフォルト値:true。有効な値:

  • true: アップデートバッチが作成されると、IoT Platform は指定されたオンラインデバイスにアップデートタスクを自動的にプッシュします。

    この場合でも、デバイスは IoT Platform から無線 (OTA) アップデートタスクに関する情報を取得するリクエストを開始できます。

  • false: デバイスは、IoT Platform から OTA アップデートタスクに関する情報を取得するリクエストを開始する必要があります。

NeedConfirm

Boolean

いいえ

false

モバイルアプリを使用してアップデートを制御するかどうかを指定します。必要に応じてモバイルアプリを開発する必要があります。デフォルト値:false。有効な値:

  • false: デバイスは、NeedPush パラメーターに基づいて OTA アップデートタスクに関する情報を取得します。

  • true: デバイスで OTA アップデートを実行するには、モバイルアプリを使用してアップデートを確認する必要があります。その後、デバイスは NeedPush パラメーターに基づいて OTA アップデートタスクに関する情報を取得できます。

GroupId

String

いいえ

IwOwQj7DJ***

グループの ID。

  • このパラメーターを指定する場合は、GroupType パラメーターも指定する必要があります。この場合、SrcVersion.N パラメーターは指定しないでください。

  • このパラメーターを指定しない場合は、GroupType パラメーターを指定する必要はありません。この場合、SrcVersion.N パラメーターを指定する必要があります。

QueryDeviceGroupList 操作を呼び出して、GroupId パラメーターをクエリできます。

GroupType

String

いいえ

LINK_PLATFORM_DYNAMIC

グループのタイプ。有効な値:LINK_PLATFORM_DYNAMIC。

  • このパラメーターを指定する場合は、GroupId パラメーターも指定する必要があります。この場合、SrcVersion.N パラメーターは指定しないでください。

  • このパラメーターを指定しない場合は、GroupId パラメーターを指定する必要はありません。この場合、SrcVersion.N パラメーターを指定する必要があります。

DownloadProtocol

String

いいえ

HTTPS

アップデートパッケージのダウンロードプロトコル。有効な値:HTTPS および MQTT。デフォルト値:HTTPS。デバイスは、IoT Platform によってプッシュされたアップデートパッケージ情報を受信した後、このプロトコルを使用してアップデートパッケージをダウンロードします。

重要

MQTT 経由でアップデートパッケージをダウンロードする必要がある場合は、次の点に注意してください。

  • サービスは中国 (上海) リージョンにデプロイする必要があります。

  • OTA アップデートパッケージには 1 つのファイルのみを含めることができ、ファイルのサイズは 16 MB を超えることはできません。

  • C 用 Link SDK の最新バージョンを使用してデバイス機能を開発し、OTA アップデートを実行して MQTT 経由でファイルをダウンロードする必要があります。詳細については、「サンプルコード」をご参照ください。

MultiModuleMode

Boolean

いいえ

false

デバイスが複数のモジュールの同時アップデートをサポートするかどうかを指定します。デフォルト値:false。有効な値:

  • false

  • true: この場合、OverwriteMode を 2 に設定しないでください。

    同じモジュールのアップデートタスクは上書きされます。進行中のアップデートタスクは上書きされません。モジュールのアップデートタスクは互いに影響しません。

重要
  • Enterprise Edition インスタンスと新しいパブリックインスタンスのみがサポートされています。

  • C 用 Link SDK 4.x を使用してデバイスを開発する必要があります。

  • グループベースの動的アップデートバッチを開始する場合、MultiModuleMode と OverwriteMode の設定は、グループの既存の動的アップデートバッチと同じである必要があります。

詳細については、「概要」をご参照ください。

上記の操作固有のリクエストパラメーターに加えて、この操作を呼び出すときは、共通のリクエストパラメーターを指定する必要があります。詳細については、「共通パラメーター」をご参照ください。

レスポンスパラメーター

パラメーター

タイプ

例

説明

Code

String

iot.system.SystemException

呼び出しが失敗した場合に返されるエラーコード。詳細については、「エラーコード」をご参照ください。

Data

Struct

呼び出しが成功した場合に返されるアップデートバッチ情報。詳細については、Data を参照してください。

JobId

String

XUbmsMHmkqv0PiAG****010001

アップデートバッチの一意の識別子。

UtcCreate

String

2019-05-10T02:18:53.000Z

アップデートバッチが作成された時刻。時刻は UTC で表示されます。

ErrorMessage

String

システム例外が発生しました。

呼び出しが失敗した場合に返されるエラーメッセージ。

RequestId

String

9F41D14E-CB5F-4CCE-939C-057F39E688F5

リクエストの ID。

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
}

エラーコード

エラーコードのリストについては、「サービスエラーコード」をご参照ください。