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

IoT Platform:デバイスジョブ

最終更新日:Apr 17, 2025

Alibaba Cloud の IoT Platform は、デバイスジョブの構成および管理サービスを提供します。デバイスバッチサービス呼び出しタスクとデバイスバッチプロパティ設定タスクの両方で Alink プロトコルを利用します。このトピックでは、デバイスジョブステータスの更新、最新のジョブ情報に対するデバイスリクエスト、およびサブタスクステータスの更新を含む、タスク更新メッセージトピックと Alink データ形式のカスタマイズの概要について説明します。

背景情報

  • カスタムタスクを実装するには、デバイス側でタスク管理機能を開発する必要があります。詳細な操作については、「デバイスジョブ」をご参照ください。

  • デバイスバッチサービス呼び出しタスクとデバイスバッチプロパティ設定タスクの場合、デバイス側の Link SDK がサービス呼び出しとプロパティ設定機能を統合している場合は、デバイスジョブを実行するために追加のタスク管理機能を開発する必要はありません。

    デバイス側の Link SDK へのサービス呼び出しとプロパティ設定機能の統合方法については、「デバイスアクセス概要」のそれぞれの Link SDK の Thing Specification Language 開発方法を参照してください。

    サービス呼び出しとプロパティ設定に使用される Alink プロトコルの説明については、「デバイスのプロパティ、イベント、およびサービス」をご参照ください。

デバイスジョブステータスの更新通知

説明

通知は、デバイスジョブのステータスが「処理中」、「キャンセル済み」、または「削除済み」に変更された場合にのみデバイスに送信されます。

ダウンストリーム。

トピック: /sys/${productKey}/${deviceName}/thing/job/notify

Alink JSON 形式のリクエスト例:

{
    "id": "7542940",
    "version": "1.0",
    "params": {
        "task": {
            "taskId": "i5Ks6***pF010101",
            "status": "SENT", // スケジュール済み
            "jobDocument": {},
            "jobFile":{
                "signMethod":"Md5", // 署名方式
                "sign":"wssxff56dhdsd***", // 署名パラメータ
                "fileUrl": "https://iotx-***.oss-cn-shanghai.aliyuncs.com/***.zip" // タスクファイルのダウンロード URL
            }
        }
    }
}

表 1. リクエストパラメータの説明

パラメータ

タイプ

説明

id

String

メッセージの ID。有効な値: 0 ~ 4294967295。各メッセージ ID は、現在のデバイスに対して一意である必要があります。

version

String

プロトコルのバージョン。このパラメータを 1.0 に設定します。

params

Object

リクエストパラメータのリスト。

task

Object

サブタスクのパラメータ。

taskId

String

サブタスクの ID。グローバルに一意の識別子です。

status

String

サブタスクのステータス。

  • SENT: スケジュール済み。

  • REMOVED: 削除済み。

  • CANCELLED: キャンセル済み。

jobDocument

Object

タスク実行ルールを記述したジョブドキュメント。

説明

status が REMOVED または CANCELLED の場合、このフィールドは空です。

jobFile

Object

カスタムタスクの作成時にアップロードされたファイル情報。

  • signMethod: 署名方式。現在、Md5Sha256 をサポートしています。

  • sign: 対応する署名方式に従って生成された署名パラメータ。

  • fileUrl: タスクファイルのダウンロード URL。1 時間有効です。

説明

```html

status が REMOVED または CANCELLED の場合、このフィールドは空です。

Alink JSON 形式のレスポンス例:

{
    "id": "7542940",
    "code": 200,
    "data": {}
}

表 2. レスポンスパラメータの説明

パラメータ

タイプ

説明

id

String

メッセージの ID。有効な値: 0 ~ 4294967295。各メッセージ ID は、現在のデバイスに対して一意である必要があります。

code

Integer

レスポンスの HTTP ステータスコード。値 200 は、リクエストが成功したことを示します。その他の値は、リクエストが失敗したことを示します。詳細については、「デバイスから返される一般的なコード」をご参照ください。

data

Object

デバイスから返されたデータ。デバイスジョブの更新通知によって返される結果データは空です。

デバイスジョブの詳細を取得する

アップストリーム。

  • リクエストトピック: /sys/${productKey}/${deviceName}/thing/job/get

  • レスポンストピック: /sys/${productKey}/${deviceName}/thing/job/get_reply

Alink JSON 形式のリクエスト例:

{
    "id": "123",
    "version": "1.0",
    "params": {
        "taskId": "i5Ks***F010101"
    }
}

表 3. リクエストパラメータの説明

パラメータ

タイプ

説明

id

String

メッセージの ID。有効な値: 0 ~ 4294967295。各メッセージ ID は、現在のデバイスに対して一意である必要があります。

version

String

プロトコルのバージョン。このパラメータを 1.0 に設定します。

params

Object

リクエストパラメータのリスト。

taskId

String

3 つの値メソッドは、異なるステータスでタスク情報を返すことができます。

  • サブタスクの ID: ジョブ ID に対応するタスクの詳細情報を返します。

  • $next: 実行可能なタスクに関する情報を返します。

  • $list: 実行可能なタスクのリストを返します。デフォルトでは最大 10 です。

taskId の値が異なると、Alink レスポンスデータ形式も異なります。

  • taskId がサブタスクの ID の場合:

    {
        "id": "1234",
        "code": 200,
        "data": {
            "statusDetails":{"devs":"test","status":"init"}, // デバイス上のタスク作成時のユーザー定義構成
            "taskId": "i5Ks***F010101",
            "task":{
                "taskId": "i5Ks***F010101",
                "status": "IN_PROGRESS", // 処理中
                "jobDocument": {},
                "jobFile":{
                    "signMethod":"Md5", // 署名方式
                    "sign":"wssxff56dhdsd***", // 署名パラメータ
                    "fileUrl": "https://iotx-***.oss-cn-shanghai.aliyuncs.com/***.zip" // タスクファイルのダウンロード URL
                }
            }
        }
    }
  • taskId$next の場合:

    {
        "id": "1234",
        "code": 200,
        "data": {
            "statusDetails":{"devs":"test","status":"init"}, // デバイス上のタスク作成時のユーザー定義構成
            "taskId": "$next",
            "task":{
                "taskId": "i5Ks***F010101",
                "status": "IN_PROGRESS", // 処理中
                "jobDocument": {},
                "jobFile":{
                    "signMethod":"Md5", // 署名方式
                    "sign":"wssxff56dhdsd***", // 署名パラメータ
                    "fileUrl": "https://iotx-***.oss-cn-shanghai.aliyuncs.com/***.zip" // タスクファイルのダウンロード URL
                }
            }
        }
    }
  • taskId$list の場合:

    {
        "id": "1234",
        "code": 200,
        "data": {
            "statusDetails":{"devs":"test","status":"init"}, // デバイス上のタスク作成時のユーザー定義構成
            "taskId": "$list",
            "task":[
                {
                    "taskId": "i5Ks***",
                    "status": "IN_PROGRESS" // 処理中
                },
                {
                    "taskId": "i61s***",
                    "status": "IN_PROGRESS" // 処理中
                }
            ]
        }
    }

表 4. レスポンスパラメータの説明

パラメータ

タイプ

説明

id

String

メッセージの ID。有効な値: 0 ~ 4294967295。各メッセージ ID は、現在のデバイスに対して一意である必要があります。

code

Integer

レスポンスの HTTP ステータスコード。値 200 は、リクエストが成功したことを示します。その他の値は、リクエストが失敗したことを示します。詳細については、「デバイスから返される一般的なコード」をご参照ください。

data

Object

デバイスから返されたデータ。

task

Object

サブタスクのパラメータ。

taskId

String

サブタスクの ID。グローバルに一意の識別子です。

status

String

サブタスクのステータス。

  • QUEUED: キューに入れられました。

  • SENT: スケジュール済み。

  • IN_PROGRESS: 処理中。

  • TIMED_OUT: タイムアウトしました。

  • FAILED: 失敗しました。

  • SUCCEEDED: 成功しました。

  • CANCELLED: キャンセルされました。

  • REJECTED: 拒否されました。

statusDetails

JSON

デバイスでタスクを作成するときのユーザー定義構成。IoT Platform コンソールの [デバイス管理] > [タスク] > [タスクの詳細] ページで表示できます。

jobDocument

Object

タスク実行ルールを記述したジョブドキュメント。

jobFile

Object

カスタムタスクの作成時にアップロードされたファイル情報。

  • signMethod: 署名方式。現在、Md5Sha256 をサポートしています。

  • sign: 対応する署名方式に従って生成された署名パラメータ。

  • fileUrl: タスクファイルのダウンロード URL。1 時間有効です。

サブタスクステータスを更新する

アップストリーム。

  • リクエストトピック: /sys/${productKey}/${deviceName}/thing/job/update

  • レスポンストピック: /sys/${productKey}/${deviceName}/thing/job/update_reply

Alink JSON 形式のリクエスト例:

{
    "id": "123",
    "version": "1.0",
    "params": {
        "taskId": "i5Ks***F010101",
        "status": "IN_PROGRESS", // 処理中
        "statusDetails": { // ユーザー定義ステータスの詳細
            "key": "value"
        },
        "progress": 50 // 実行の進捗状況 (パーセント)
    }
}

表 5. リクエストパラメータの説明

パラメータ

タイプ

説明

id

String

メッセージの ID。有効な値: 0 ~ 4294967295。各メッセージ ID は、現在のデバイスに対して一意である必要があります。

version

String

プロトコルのバージョン。このパラメータを 1.0 に設定します。

params

Object

リクエストパラメータのリスト。

taskId

String

サブタスクの ID。グローバルに一意の識別子です。

status

String

サブタスクのステータス。有効な値:

  • SUCCEEDED: 正常に完了しました。

  • FAILED: 実行に失敗しました。

  • IN_PROGRESS: 現在実行中です。

  • REJECTED: 実行が拒否されました。

statusDetails

Object

カスタマイズ可能なユーザー定義ステータスの詳細。IoT Platform コンソールの [デバイス管理] > [タスク] > [タスクの詳細] ページで表示できます。

progress

Integer

サブタスクの実行の進捗状況 (パーセント)。

Alink JSON 形式のレスポンス例:

{
    "id":"123",
    "code":200,
    "data":{
        "taskId":"i5Ks***F010101"
    }
}

表 6. レスポンスパラメータの説明

パラメータ

タイプ

説明

id

String

メッセージの ID。有効な値: 0 ~ 4294967295。各メッセージ ID は、現在のデバイスに対して一意である必要があります。

code

Integer

レスポンスの HTTP ステータスコード。値 200 は、リクエストが成功したことを示します。その他の値は、リクエストが失敗したことを示します。詳細については、「デバイスから返される一般的なコード」をご参照ください。

data

Object

デバイスから返されたデータ。

taskId

String

サブタスクの ID。グローバルに一意の識別子です。