このトピックでは、プルストリームリレーコールバックのトリガー条件と、コールバックペイロードのサンプルについて説明します。
コールバックイベント
プルストリームリレーコールバックは、タスクの状態変化およびタスク終了の 2 種類のイベントでトリガーされます。
プルストリームリレータスクは、以下のいずれかの状態になります。
状態 | 説明 |
Idle | API 呼び出しによって作成されたタスクの初期状態です。 |
Running | スケジュール時刻に自動的にタスクが開始される、または API 呼び出しによって再開されたときの状態です。 |
Recovering | 実行エラー後にリトライ中のタスクの状態です。 |
Offline | リトライ回数がタイムアウトしてタスクが自動停止した後、または API 呼び出しによって停止された後の状態です。 |
Exit | スケジュール終了時刻に達してシステムが自動的にタスクを削除した後、または API 呼び出しによって削除された後の状態です。 |
タスク状態変化のコールバック
説明
プルストリームリレータスクの状態が Running、Recovering、または Offline に遷移すると、コールバックがトリガーされます。
トリガー条件
スケジュール開始時刻にタスクが自動的に開始される、または API 呼び出しによって再開されると、タスク状態が
Runningに遷移します。タスク実行中にエラーが発生すると、タスク状態が
Recoveringに遷移します。API 呼び出しによってタスクが停止される、またはリトライ回数がタイムアウトすると、タスク状態が
Offlineに遷移します。
タスク終了のコールバック
説明
プルストリームリレータスクが終了すると、システムはコールバックをトリガーします。終了とは、システムが期限切れのタスクを削除したことを示します。
トリガー条件
スケジュール終了時刻に達してシステムが自動的にタスクを削除すると、タスク状態が
Exitに遷移します。API 呼び出しによってタスクが削除されると、タスク状態が
Exitに遷移します。
コールバックペイロード
システムは、HTTP POST リクエストのリクエストボディ内に JSON オブジェクトとしてコールバックを送信します。リクエストボディを解析することで、コールバック内容を取得できます。
タスク状態変化コールバックのパラメーターとサンプルペイロード
表 1. タスク状態変化のコールバックペイロード
パラメーター
説明
Event
イベント名。固定値:
LivePullToPushRunning。EventTime
イベント発生時刻(UNIX タイムスタンプ、秒単位)。
TaskId
タスク ID。
TaskInfo
タスク情報。
TaskStatus
タスクの現在の状態。有効な値:
1:Running
2: 回復中
3:Offline
TaskInvalidReason
タスクが異常動作している、または停止した理由。有効な値:
PullStreamFailed:ストリームのプルに失敗しました。PushStreamFailed:ストリームのリレーに失敗しました。TriggerByUser:API 呼び出しによってタスクが停止されました。UnknownError:不明なエラーが発生しました。RetryTimesOffline:リトライ回数がタイムアウトしました。
説明タスク状態が
Offlineの場合にのみ、このパラメーターが返されます。サンプルペイロード
{ "Event": "LivePullToPushRunning", "EventTime": "1725501246", "TaskId": "08a1b00c-9c2f-4dfa-9f5d-878f2505****", "TaskInfo": { "TaskId": "08a1b00c-9c2f-4dfa-9f5d-878f2505****", "StartTime": "2024-09-05T01:54:00Z", "EndTime": "2024-09-05T01:58:00Z", "SourceUrls": [ "\"http://fyl-*******-*****.oss-cn-beijing.aliyuncs.com/record/caster/741584e2557248e98ef332d41e4afc3d/2024-08-30-18:19:40_2024-08-30-18:21:09.mp4\"" ], "DstUrl": "rtmp://pushtest.******.aliyunlive.com/pulltest38/pulltest-w38", "CallbackURL": "https://1833220977******.cn-shanghai.lc.aliyuncs.com/workflows/lc-uf6sd1382ikolc/triggers/manual/methods/invoke?ApiVersion=2018-12-12&Signature=TZT7CGDgc299cC2dtL73Yeq4xY8", "Offset": 0, "SourceType": "url" }, "TaskStatus": "1" }タスク終了コールバックのパラメーターとサンプルペイロード
表 2. タスク終了のコールバックペイロード
パラメーター
説明
Event
イベント名。固定値:
LivePullToPushExit。EventTime
イベント発生時刻(UNIX タイムスタンプ、秒単位)。
TaskId
タスク ID。
TaskInfo
タスク情報。
TaskStatus
タスクの現在の状態。有効な値:
-1:Exit
TaskExitTime
タスク終了時刻(UNIX タイムスタンプ、秒単位)。
TaskExitReason
タスク終了の理由。有効な値:
TriggerByUser:ユーザーが API 呼び出しによりタスクを削除しました。OverEndTime:指定された終了時刻に到達しました。
サンプルペイロード
{ "Event": "LivePullToPushExit", "EventTime": "1725501483", "TaskId": "08a1b00c-9c2f-4dfa-9f5d-878f2505****", "TaskInfo": { "TaskId": "08a1b00c-9c2f-4dfa-9f5d-878f2505****", "StartTime": "2024-09-05T01:54:00Z", "EndTime": "2024-09-05T01:58:00Z", "SourceUrls": [ "\"http://fyl-******-****.oss-cn-beijing.aliyuncs.com/record/caster/741584e2557248e98ef332d41e4afc3d/2024-08-30-18:19:40_2024-08-30-18:21:09.mp4\"" ], "DstUrl": "rtmp://pushtest.*****.aliyunlive.com/pulltest38/pulltest-w38", "CallbackURL": "https://1833220977******.cn-shanghai.lc.aliyuncs.com/workflows/lc-uf6sd1382ikolc/triggers/manual/methods/invoke?ApiVersion=2018-12-12&Signature=TZT7CGDgc299cC2dtL73Yeq4xY8", "Offset": 0, "SourceType": "url" }, "TaskStatus": "-1", "TaskExitTime": "1725501483", "TaskExitReason": "OverEndTime", }