このトピックでは、イベント通知に関するよくある質問に対する回答を提供します。
よくある質問
コールバックからHTTPS再生URLを取得するにはどうすればよいですか?
ApsaraVideo VODのHTTPコールバックまたはSimple Message Queue (旧MNS) コールバックでは、HTTPS URLは返されません。 コールバックからHTTPS再生URLを取得するには、次の手順を実行します。
ドメイン名のSSL証明書を設定します。
ドメイン名のSSL証明書を設定している場合は、この手順をスキップします。 SSL証明書の設定方法の詳細については、「HTTPSセキュアアクセラレーションの有効化」をご参照ください。
コールバックの受信に使用されるコードで、HTTP再生URLをHTTPS再生URLに置き換えます。
たとえば、Javaコードで
replace
メソッドを呼び出して、HTTP URLをHTTPS URLに置き換えます。
複数のコールバックURLを指定する方法?
ApsaraVideo VODコンソールまたはSDKを使用してコールバックを設定するか、SetMessageCallback操作を呼び出してコールバックを設定すると、コールバック設定がグローバルに有効になり、使用できるコールバックURLは1つだけです。 複数のコールバックURLを指定する場合は、次のいずれかの方法を使用します。
方法1:
UserData
でコールバックURLを指定するCreateUploadVideoやSubmitTranscodeJobsなどのAPIを呼び出してコールバックURLを設定するときに、
UserData
のMessageCallbackフィールドを指定します。 詳細については、「複数のコールバックURLの指定」をご参照ください。説明このメソッドはHTTPコールバックのみをサポートします。
HTTPコールバック設定を有効にするには、グローバルイベント通知を有効にし、関連イベントを設定する必要があります。
方法2: 各アプリケーションのコールバックURLを指定する
マルチアプリケーションシステムを使用して、各アプリケーションのコールバックメソッドとURLを設定できます。 詳細については、「マルチアプリケーションサービスの概要」をご参照ください。
HTTPコールバックに関するFAQ
HTTPコールバックの受信失敗のトラブルシューティングを行うにはどうすればよいですか?
ApsaraVideo VODコンソールにログインします。 左側のナビゲーションウィンドウで、 を選択します。 表示されるページで、コールバック機能が有効になっているかどうか、およびビジネス要件に基づいてイベントコールバックを構成しているかどうかを確認します。
次のサンプルコードを実行して、応答が返されるかどうかを確認します。 応答が返されない場合は、コールバックメッセージを受信したサーバーでエラーが発生していないか確認してください。 実際の使用では、
http://example.aliyundoc.com/processMessage
を指定したHTTPコールバックURLに置き換えます。curl -l -i -H "Content-type: application/json" -X POST -d '{"VideoId":"videoId","EventType":"FileUploadComplete","Status":"success","Size":1439213}' http://example.aliyundoc.com/processMessage
HTTPコールバックリクエストのタイムアウト期間はどのくらいですか? ApsaraVideo VODは、失敗時にコールバックリクエストを何回再送しますか。 再試行間隔はどのくらいですか?
デフォルトでは、5秒以内に応答が返されない場合、HTTPコールバックリクエストはタイムアウトします。 ApsaraVideo VODは、障害時に1秒間隔で最大3回コールバックリクエストを再送します。
再試行回数が制限に達した後、HTTPコールバック要求は破棄されますか? メッセージの損失を防ぐには?
クラッシュ、再起動、ネットワーク到達不能など、コールバックメッセージを受信したサーバーでエラーが発生した場合、再試行回数が制限に達した後、コールバックリクエストは破棄されます。 メッセージの損失を防ぐために、SMQコールバックメソッドを使用することを推奨します。
HTTPコールバックでHTTPステータスコード302がサポートされていますか?
HTTPコールバックメソッドは、HTTPステータスコード200のみをサポートします。 301や302などの他のHTTPステータスコードは、セキュリティ上の理由からサポートされていません。
サーバーがHTTPコールバックリクエストを複数回受信するのはなぜですか?
HTTPコールバックは、HTTPステータスコード200が返された場合にのみ成功します。 200以外のHTTPステータスコードが返された場合、またはコールバックがタイムアウトした場合、コールバックは失敗し、ApsaraVideo VODはコールバック要求を最大3回再送信しようとします。
HTTP認証とは
ApsaraVideo VODでは、HTTP認証中に特定の署名ヘッダーをHTTPコールバックリクエストに追加できます。 コールバックメッセージを受信するサーバーは、ApsaraVideo VOD以外の要求者からの不正な要求を防ぐために署名を検証します。 HTTP認証を有効にするかどうかを決定できます。
SMQコールバックに関するFAQ
SMQキューにコールバックメッセージが存在しないのはなぜですか。
ApsaraVideo VODがSimple Message Queue (formerly MNS) へのアクセスを許可されていない、SMQエンドポイントがパブリックエンドポイントでない、またはキュー名が無効なため、コールバックメッセージをSMQキューにプッシュできません。
コールバックメッセージの生存時間 (TTL) が短すぎる場合、メッセージは消費される前に解放される可能性があります。 TTLを3,600秒に設定することを推奨します。
最大メッセージ長が短すぎると、コールバックメッセージがSMQキューにプッシュされない可能性があります。 デフォルトのメッセージ長である65,536バイトを使用することを推奨します。
メッセージを複数回受信するのはなぜですか?
メッセージは、それが消費された後、短期間は見えない。 手動で、またはAPI操作を呼び出してメッセージを削除する必要があります。 そうでなければ、メッセージはその期間の後に再び消費され得ます。
SMQコールバックメソッドは認証をサポートしていますか?
ApsaraVideo VODは、ApsaraVideo VODがSMQへのアクセスを許可された後にのみ、コールバックメッセージをSMQキューにプッシュできます。 SMQコールバックはHTTPコールバックよりも安全であり、認証は必要ありません。
SMQコールバックメソッドはどのリージョンで利用できますか?
中国 (北京) リージョンや中国 (上海) リージョンなど、中国本土にビデオを保存する場合は、中国 (上海) リージョンでSMQキューを使用することを推奨します。 中国 (上海) リージョン以外のリージョンのキューにコールバックメッセージをプッシュすると、低遅延が発生する可能性があります。
シンガポールリージョンでビデオを保存する場合は、シンガポールリージョンでSMQキューを使用することを推奨します。
ビデオをドイツ (フランクフルト) リージョンに保存する場合は、ドイツ (フランクフルト) リージョンでSMQキューを使用することを推奨します。
リージョン間のコールバックにSMQキューを使用できますか?
はい。 たとえば、ビデオを中国 (上海) または中国 (北京) リージョンに保存および処理し、コールバックメッセージを中国 (深セン) リージョンのSimple Message Queue (formerly MNS) キューにプッシュできます。 しかしながら、メッセージ配信は、ネットワーク待ち時間のために遅延され得ます。 そのため、動画が保存されているリージョンのSMQキューにメッセージをプッシュすることをお勧めします。