このトピックでは、HTTPコールバックのメカニズム、使用法、および認証の原則について説明します。
HTTPコールバックメカニズム
HTTPサービスをデプロイしてコールバックメッセージを受信し、ApsaraVideo VODでコールバックURLを指定する必要があります。
イベントが発生すると、ApsaraVideo VODは指定されたコールバックURLにHTTP POSTリクエストを送信します。 通知の内容は、HTTPリクエストボディに含まれます。
HTTP POSTリクエストが送信された後、HTTPサービスはリクエストに対して署名認証を実行します。 リクエストが認証に合格すると、コールバックが成功したことを示すHTTPステータスコード200が返されます。 200以外のHTTPステータスコードが返された場合、またはリクエストがタイムアウトした場合、コールバックは失敗します。 詳細については、「HTTPコールバック認証」をご参照ください。
コールバックリクエストが成功すると、指定したコールバックURLにイベント通知が送信されます。 コールバックリクエストが失敗した場合、ApsaraVideo VODはコールバックリクエストを2回再送します。 3回の試行後にコールバックリクエストの送信に失敗した場合、ApsaraVideo VODはリクエストを破棄します。 再試行ロジックと成功したコールバックを判断する方法の詳細については、「コールバックの判断と再試行」をご参照ください。
HTTPコールバックの使用方法
前提条件
HTTPまたはHTTPSサービスは、コールバックメッセージを受信するためにデプロイされます。
Alibaba Cloudアカウントが作成され、実名認証が完了しました。 Alibaba Cloud アカウントを作成するには、Alibaba Cloud 公式 Web サイトにアクセスします。 詳細については、「Alibaba Cloudアカウントの作成」をご参照ください。
ApsaraVideo VODが有効化されています。 詳細については、「ApsaraVideo VODの有効化」をご参照ください。
使用上の注意
ApsaraVideo VODは複数のサービスリージョンをサポートしています。 領域間のイベント通知構成は、互いに独立している。 リージョンごとに異なるコールバックメソッドとコールバックURLを使用できます。
複数のHTTPコールバックURLを指定して、さまざまな環境での開発要件を満たすことができます。 詳細については、「Specify multiple callback URLs」をご参照ください。
手順
イベント通知を受信するようにHTTPコールバックを設定します。
説明ApsaraVideo VODコンソールを使用してイベントコールバックを設定した場合、設定はグローバルに有効になります。 さまざまなAPIを呼び出して、グローバルコールバック設定を設定したり、ApsaraVideo VODで特定のコールバックを設定したりすることもできます。
ApsaraVideo VODコンソールを使用
ApsaraVideo VODコンソールにログインします。
左側のナビゲーションウィンドウで、[設定管理]> [メディア処理]> [コールバック] を選択します。
上部のナビゲーションバーで、[ワークベンチ] ボタンの横にあるドロップダウンリストから目的のリージョンを選択します。
コールバック設定を設定します。
[コールバック] ページで、[コールバック] セクションの [変更] をクリックします。
コールバックパラメーターを設定します。 下表に、各パラメーターを説明します。
パラメーター
説明
コールバック方法
[HTTPリクエスト] を選択します。
コールバックURL
コールバックURLを指定します。 選択したイベントがトリガーされると、ApsaraVideo VODはHTTP POSTリクエストをURLに送信します。
URLの長さは最大256バイトです。 指定できるURLは1つだけです。
イベント
ビジネス要件に基づいてコールバックを設定するイベントを選択します。 ApsaraVideo VODでサポートされているイベントおよびイベント通知コンテンツの詳細については、「イベント」をご参照ください。
説明[AI処理完了] を選択すると、AIMediaAuditComplete、AIMediaDNAComplete、AIDoTagCompleteなどのすべてのAIイベントの通知が送信されます。
[OK] をクリックします。
(オプションの手順) コールバック認証を設定します。
コールバック方法をHTTPリクエストに設定した場合、HTTPおよびHTTPSリクエストヘッダーに認証パラメーターを追加できます。 このようにして、コールバックイベント通知を受信するサーバーは、署名を認証して、違法または無効な要求を防ぐことができます。
コールバック認証を有効にするか、[コールバック認証] セクションで [変更] をクリックします。
认证キーを指定します。
AuthKey
フィールドは認証キーを示します。 詳細については、「署名アルゴリズム」をご参照ください。 キーの長さは最大32文字で、数字、大文字、および小文字を使用する必要があります。[OK] をクリックします。
コールバック認証を有効にした後、コールバックメッセージを受信するためにデプロイしたHTTPまたはHTTPSサービスに対応する認証ロジックを設定します。 詳細については、「HTTPコールバック認証」をご参照ください。
ApsaraVideo VOD APIの使用
さまざまなAPIを呼び出して、グローバルコールバック設定を設定したり、ApsaraVideo VODで特定のコールバックを設定したりできます。
グローバルHTTPコールバック設定を構成するには、SetMessageCallback操作を呼び出します。 この操作を呼び出すときは、
CallbackType
をHTTP
に設定し、CallbackURL
やEventTypeList
などの他のリクエストパラメーターを指定します。特定のHTTPコールバックを設定するには、API操作を呼び出すときに
UserData
でMessageCallbackフィールドを指定します。 次のAPIを呼び出して、メディアファイルをアップロードしたり、メディア処理ジョブを送信したりできます。
説明UserData
でMessageCallback
フィールドを指定してコールバックを設定できます。 HTTPコールバック設定を有効にするには、グローバルイベント通知を有効にし、関連イベントを設定する必要があります。イベントをトリガーします。
イベント通知を設定した後、オーディオ、ビデオ、画像ファイルのアップロードなどの操作を実行して、イベントをトリガーできます。 コード変換ジョブやスナップショットジョブなどのメディア処理ジョブを送信して、イベントをトリガーすることもできます。
コールバックメッセージを表示します。
コールバックイベントがトリガーされた後、コールバックが成功した場合に展開したコールバックサービスでイベント通知を表示できます。
HTTPコールバック認証
ApsaraVideo VODでは、HTTPおよびHTTPSリクエストヘッダーに認証パラメーターを追加できます。 このようにして、コールバックメッセージを受信するサーバは、署名を認証して、違法または無効な要求を防ぐことができます。
使用上の注意
ビジネス要件に基づいて、HTTPコールバック認証を有効または無効にすることができます。 HTTPコールバック認証を有効にすることを推奨します。 AuthKeyパラメーターを設定すると、コールバックリクエストにはすべての認証関連情報が含まれます。 コールバックメッセージを受信するサーバーは、情報を使用してコールバック要求を認証します。 サーバーで認証を有効にするかどうかを決定できます。
AuthKeyパラメーターを指定しなくても、コールバックサービスは影響を受けません。
認証パラメータ
次の表に、HTTPコールバック要求ヘッダーに追加できる認証パラメーターを示します。
パラメーター | 説明 |
X-VOD-TIMESTAMP | コールバック要求が送信されたときのUNIXタイムスタンプ。 値は10桁の正の整数で、1970年1月1日00:00:00から経過した秒数を表します。 |
X-VOD-SIGNATURE | 32文字のMD5値である署名文字列。 詳細については、次のセクションをご参照ください。 |
署名アルゴリズム
X-VOD-SIGNATUREパラメータの値は、次の表に示すパラメータに基づいて計算されます。
パラメーター | 例 | 説明 |
コールバックURL | https://www.example.com/your/callback | 指定したコールバックURL。 |
X-VOD-TIMESTAMP | 1519375990 | コールバック要求が送信されたときのUNIXタイムスタンプ。 値は10桁の正の整数で、1970年1月1日00:00:00から経過した秒数を表します。 |
AuthoKey | Test123 | キーの長さは最大32文字で、数字、大文字、および小文字を使用する必要があります。 |
前述の3つのパラメータを縦棒 (|) で区切って連結します。 次に、連結文字列のMD5ハッシュ値を計算します。 サンプルコード:
MD5Content = Callback URL|X-VOD-TIMESTAMP|AuthKey
X-VOD-SIGNATURE = md5sum(MD5Content)
X-VOD-SIGNATUREを計算するためのサンプルコード:
X-VOD-SIGNATURE = md5sum(https://www.example.com/your/callback|1519375990|Test123) = c72b60894140fa98920f1279219b****
権限付与ルール
コールバックメッセージを受信するサーバーは、コールバックURL、X-VOD-TIMESTAMP、およびAuthKeyを文字列に連結し、文字列のMD5ハッシュ値を計算します。 次に、サーバは、MD5ハッシュ値をX-VOD-SIGNATUREの値と比較する。 2つの値が異なる場合、リクエストは無効と見なされます。
コールバックメッセージを受信したサーバーは、現在時刻を取得し、現在時刻とコールバック要求のX-VOD-TIMESTAMPパラメーターで指定された時刻との差を計算します。 時差がサーバーによって設定された値 (5分など) を超える場合、リクエストは無効と見なされます。
説明計算された時間差は、誤った時間設定のために不正確です。 ビジネス要件に基づいて、サーバーで時差検証を有効にするかどうかを決定できます。
AuthKeyの切り替え
AuthKeyパラメーターの値を変更した場合、コールバックサービスが影響を受けないように、コールバックメッセージを受信するサーバーは、古いキーと新しいキーに基づく認証をサポートする必要があります。 この場合、サーバは、新旧の鍵に基づいて認証を実施することができます。
キーを切り替えるには、次の手順を実行することを推奨します。
AuthKeyパラメーターの新しい値を定義します。
コールバックメッセージを受信したサーバーをアップグレードして、古いキーと新しいキーに基づく認証をサポートします。
ApsaraVideo VODコンソールで、AuthKeyの値を新しい値に置き換えます。
しばらくしてから、コールバックメッセージを受信したサーバーから古いキーのサポートを削除します。
キーを切り替えます。
関連ドキュメント
HTTPコールバックとMNSコールバックの比較の詳細については、「HTTPコールバックメソッドとMNSコールバックメソッドの比較」をご参照ください。
HTTPコールバックの設定時に問題が発生した場合は、「イベント通知に関するFAQ」をご参照ください。