Intelligent Media Services (IMS) を使用してメディアアセットのアップロード、メディア処理、オンライン編集を行う際に、コールバックイベントを設定することで、タスクの進捗状況やステータスをタイムリーに受信し、後続のビジネスオペレーションと連携できます。
コールバック方式
概要
IMS は、イベント通知を受信するための 2 つのコールバック方式 (HTTP リクエストと MNS キュー) をサポートしています。
-
HTTP リクエスト:IMS はイベント通知をお客様のサービスに送信します。お客様は、HTTP サービスをデプロイしてコールバックメッセージを受信し、コンソールまたは API オペレーションを呼び出してコールバック URL を設定します。イベントが発生すると、IMS サーバーは、メッセージ内容を HTTP ボディに含めて、コールバック URL に HTTP POST リクエストを送信します。
-
MNS キュー:IMS はイベント通知をメッセージキューに書き込みます。お客様は、IMS が Simple Message Queue (formerly MNS) にアクセスすることを承認し、既存のキューを作成または選択して、コンソールまたは API オペレーションを呼び出してキュー名を設定します。イベントが発生すると、IMS はコールバック内容をキューに書き込みます。その後、お客様はキューを読み取ってメッセージを取得できます。
長所と短所
|
比較 |
HTTP リクエスト |
MNS キュー |
|
信頼性 |
受信側の HTTP サービスでクラッシュや再起動などの問題が発生した場合、メッセージが失われる可能性があります。 |
設定が正しければ、メッセージのコールバックはほぼ確実に成功します。この方式は、より信頼性が高いです。 |
|
セキュリティ |
どの HTTP クライアントでもコールバック URL にリクエストを送信できます。コールバック認証を使用して、不正なリクエストをフィルターできます。詳細については、「コールバック認証」をご参照ください。 |
承認された関係者のみがメッセージキューの読み取りと書き込みを行えます。この方式は、より高いセキュリティを確保できます。 |
|
利便性 |
セットアップが容易です。メッセージを受信するためのサービスをデプロイするだけです。 |
MNS を有効にして設定する必要があります。また、メッセージを消費するためのプログラムを開発し、デプロイする必要もあります。 |
コールバックプロトコル
|
コールバック方式 |
説明 |
|
HTTP リクエスト |
|
|
MNS キュー |
キューから受信したメッセージは JSON 文字列 です。メッセージボディとパラメーターの説明例については、「イベント一覧」をご参照ください。 |
コールバックの検証とリトライ
|
コールバック方式 |
コールバック成功の判定 |
コールバックのリトライ |
|
HTTP リクエスト |
受信サービスが HTTP ステータスコード 200 を返した場合、コールバックは成功です。ステータスコードが 200 ではない場合、または応答時間が 3 秒を超えた場合、コールバックは失敗となります。IMS は HTTP ステータスコード のみに基づいて成功を判断し、レスポンスボディ は無視します。 |
コールバック URL が正しくない、受信サービスが利用できないなどの設定の問題でコールバックが失敗した場合、IMS は 1 秒間隔でさらに 2 回リトライします。3 回すべての試行が失敗した場合、メッセージは破棄されます。 |
|
MNS キュー |
メッセージが MNS キューに正常に書き込まれた場合、コールバックは成功と見なされます。それ以外の場合、コールバックは失敗と見なされます。 |
設定の問題で MNS キューへのメッセージの書き込みが失敗した場合、IMS は 1 秒間隔でさらに 2 回リトライします。設定の問題の例として、IMS に Simple Message Queue (formerly MNS) へのアクセス権が付与されていない、パブリックネットワーク以外のキューアドレスを使用している、またはキュー名が正しくない、などが挙げられます。3 回すべての試行が失敗した場合、メッセージは破棄されます。 |
MNS キューのコールバックは、信頼性がより高いです。設定が正しければ、メッセージのコールバックはほぼ確実に成功します。
コールバックイベントの種類
IMS は、メディアアセットのアップロード、メディア処理、オンライン編集、およびその他のオペレーションのためのコールバックイベントを用意しています。特定のコールバックイベントを設定することで、タスクの進捗状況やステータスをタイムリーに受け取ることができます。詳細については、「イベント一覧」をご参照ください。