ApsaraVideo VODは、HTTPおよびMNSコールバックメソッドをサポートしています。 このトピックでは、イベント通知のイベントタイプ、コールバックメソッド、コールバック設定、コールバックプロトコル、および共通コールバックパラメーターについて説明します。 また、コールバックが成功したかどうかを判断する方法、再試行、およびよくある質問についても説明します。
概要
ApsaraVideo VODは、複数のストレージリージョンのイベント通知をサポートしています。 各リージョンのイベント通知のコールバックメソッドとコールバックURLを設定できます。 ビデオをさまざまなストレージリージョンにアップロードできます。 ビデオが処理された後、ApsaraVideo VODは、リージョンに対して設定したコールバック方法とコールバックURLに基づいて処理結果を通知します。
イベントタイプ
次の表に、ApsaraVideo VODでイベント通知が提供されるイベントタイプを示します。
イベントタイプ | 参照 |
---|---|
FileUploadComplete | |
ImageUploadComplete | |
StreamTranscodeComplete | |
TranscodeComplete | |
SnapshotComplete | |
DynamicImageComplete | |
AddLiveRecordVideoComplete | |
LiveRecordVideoComposeStart | |
UploadByURLComplete | |
CreateAuditComplete | |
VideoAnalysisComplete | |
AttachedMediaUploadComplete | |
ProduceMediaComplete | |
DeleteMediaComplete | |
MediaBaseChangeComplete |
コールバックメソッド
ApsaraVideo VODは、イベント通知を取得するためのHTTPコールバック (HTTPS互換) およびMNSコールバックメソッドを提供します。
HTTPコールバック (HTTPS互換):
ApsaraVideo VODコンソールで、HTTPサービスをデプロイしてコールバックメッセージを受信し、コールバックURLを設定する必要があります。 イベントが生成されると、ApsaraVideo VODは設定されたコールバックURLにHTTP POSTリクエストを送信します。 特定のイベントコンテンツは、HTTP POSTリクエストボディで送信されます。
MNSコールバック:
ApsaraVideo VODに権限付与してMNSにアクセスする必要があります。 その後、MNSコンソールにログインしてキューを作成するか、既存のキューを使用してAPI操作を呼び出してイベント通知を設定できます。 イベントが生成されると、ApsaraVideo VODはコールバックメッセージをキューに書き込みます。 メッセージの読み方については、MNSのドキュメントを参照してください。 詳細については、「信頼できるMNSイベント通知」をご参照ください。
HTTPコールバックメソッドとMNSコールバックメソッドの比較
比較アイテム | HTTPコールバック | MNSコールバック |
---|---|---|
信頼性 | HTTPメッセージ受信サービスが異常な場合 (サービスの中断や再起動など) 、メッセージが失われる可能性があります。 | MNSコールバックは、HTTPコールバックよりも信頼性が高い。 ほぼすべてのMNSコールバックは、適切に設定されていれば成功します。 |
セキュリティ | HTTPコールバックメソッドでは、すべてのユーザーが指定されたコールバックURLにコールバックリクエストを送信できます。 ただし、コールバック認証を使用して無効なリクエストを拒否し、HTTPコールバックのセキュリティを強化できます。 詳細については、「HTTPコールバック認証」をご参照ください。 | 許可されたユーザーのみがメッセージキューを読み書きできるため、MNSコールバックはより安全です。 |
利便性 | HTTPコールバックを使用するにはメッセージ受信サービスをデプロイするだけでよいため、HTTPコールバックはMNSコールバックよりも便利です。 | MNSコールバックを使用するには、MNSをアクティブ化して構成し、メッセージを消費するアプリケーションを開発してデプロイする必要があります。 |
特定のシナリオに最適なコールバック方法を選択できます。
コールバック設定
ApsaraVideo VODコンソールにログインします。 左側のナビゲーションウィンドウで、[設定管理] > [メディア処理] > [コールバック] を選択します。 [コールバック] ページで、コールバックURL、キュー、およびイベントを設定します。 詳細については、「コールバック」をご参照ください。
[AI Processing Completed] を選択すると、AIMediaAuditComplete、AIMediaDNAComplete、AIVideoTagCompleteなどのすべてのAIイベントの通知が送信されます。
コールバックプロトコル
HTTPコールバック
リクエスト: HTTP POSTリクエストが送信され、リクエスト本文はJSON形式です。 各イベントの特定のリクエスト本文については、イベントの説明ドキュメントを参照してください。
応答: ApsaraVideo VODは、応答の本文内容を無視します。
MNSコールバック
コールバックメッセージはJSON形式です。 各イベントの特定のメッセージ本文については、イベントの説明ドキュメントを参照してください。
一般的なコールバックパラメーター
パラメーター | Type | 説明 |
---|---|---|
EventTime | String | イベントが生成された時刻。 時刻はyyyy-MM-ddTHH:mm:ssZ形式とUTC形式で表示されます。 |
EventType | String | イベントタイプ。 |
VideoId | String | ビデオのID。 |
ステータス | String | ビデオの処理状態。 設定可能な値は以下のとおりです。
|
拡張 | String | アップロードまたは送信操作でUserDataパラメーターが指定され、Extendフィールドが含まれている場合、コールバックが完了すると、ユーザーのカスタムデータがパススルーモードで返されます。 このフィールドの値の長さは512バイトです。 |
コールバックの判断と再試行
HTTPコールバック
HTTPコールバック要求が送信された後、ApsaraVideo VODは、HTTPメッセージ受信サービスによって返された応答のHTTPステータスコードをチェックします。 HTTPステータスコードが200の場合、ApsaraVideo VODはコールバックが成功したと判断します。 HTTPステータスコードが200されていない場合、または5秒以内に応答が受信されないときにコールバックがタイムアウトする場合、ApsaraVideo VODはコールバックが失敗したと判断します。 ApsaraVideo VODは、レスポンスのHTTPステータスコードのみをチェックし、レスポンスの本文内容を無視します。
設定が正しくないためにコールバックリクエストを送信できない場合 (コールバックURLが正しくない場合やHTTPメッセージ受信サービスが異常な場合など) 、ApsaraVideo VODはコールバックリクエストをさらに2回再試行します。 ApsaraVideo VODは、コールバック要求を最大3回送信しようとします。 それでもコールバック要求の送信に失敗した場合、ApsaraVideo VODは要求を破棄します。
MNSコールバック
MNSコールバックメソッドを使用すると、ApsaraVideo VODは、メッセージがMNSキューにプッシュされたときにMNSコールバックが成功したと判断します。
誤った設定 (ApsaraVideo VODがMNSへのアクセスを許可されていない、MNSエンドポイントがパブリックエンドポイントでない、キュー名が正しくないなど) によりメッセージをキューにプッシュできない場合、ApsaraVideo VODはプッシュをさらに2回再試行します。 ApsaraVideo VODは、メッセージをキューに最大3回プッシュしようとします。 それでもメッセージをキューにプッシュできない場合、ApsaraVideo VODはメッセージを破棄します。
コールバックが失敗すると、ApsaraVideo VODは1秒ごとにコールバックを再試行します。 最大3回の試行が失敗した場合、ApsaraVideo VODは再試行を停止し、コールバックメッセージを破棄します。 MNSコールバックはHTTPコールバックよりも信頼性が高いため、使用することを推奨します。 ほぼすべてのMNSコールバックは、適切に設定されていれば成功します。
よくある質問
イベント通知機能を使用するときに問題が発生した場合は、「イベント通知に関するFAQ」をご参照ください。