このトピックでは、Simple Message Queue (formerly MNS) コールバックのメカニズムと使用方法について説明します。
背景情報
Simple Message Queue (formerly MNS) (SMQ) は、スケーラビリティ、高効率、信頼性、セキュリティ、および可用性を特長とする分散メッセージングサービスです。 Simple Message Queue (formerly MNS) は、複数のプロデューサーとコンシューマーからの大量の同時リクエストをサポートするキューを提供します。キューからメッセージがプルされると、指定された期間、メッセージを再度プルすることはできません。メッセージは、消費された後、一定期間非表示になります。メッセージを手動で削除しない場合、再度消費される可能性があります。 Simple Message Queue (formerly MNS) を使用して、ApsaraVideo VOD のイベント通知を受信できます。 Simple Message Queue (formerly MNS) の詳細については、「SMQ とは」をご参照ください。
SMQ コールバックメカニズム
Simple Message Queue (formerly MNS) でキューを作成し、ApsaraVideo VOD でコールバックを構成する必要があります。
イベントが発生すると、ApsaraVideo VOD は Simple Message Queue (formerly MNS) のキューにコールバックメッセージをプッシュします。
メッセージが Simple Message Queue (formerly MNS) キューにプッシュされると、コールバックは成功です。そうでない場合、コールバックは失敗します。構成が正しくないためにコールバックメッセージがキューにプッシュできなかった場合、ApsaraVideo VOD はメッセージのプッシュを 2 回再試行します。たとえば、ApsaraVideo VOD が Simple Message Queue (formerly MNS) にアクセスする権限を持っていない場合、SMQ エンドポイントがパブリックエンドポイントでない場合、またはキュー名が正しくない場合、コールバックメッセージはプッシュに失敗します。 3 回試行してもコールバックメッセージのプッシュに失敗した場合、ApsaraVideo VOD はメッセージを破棄します。再試行ロジックと成功したコールバックの判断方法の詳細については、「コールバックの判断と再試行」をご参照ください。
コールバックが成功した後、SMQ からコールバックメッセージを取得する必要があります。メッセージは、受信および消費された後にのみ削除できます。メッセージは、消費された後、一定期間非表示になります。メッセージを手動で削除しない場合、再度消費される可能性があります。
使用上の注意
前提条件
Alibaba Cloud アカウントが作成され、実名認証が完了していること。Alibaba Cloud アカウントを作成するには、Alibaba Cloud 公式ウェブサイト にアクセスしてください。詳細については、「Alibaba Cloud アカウントを作成する」をご参照ください。
ApsaraVideo VOD がアクティブ化されていること。詳細については、「ApsaraVideo VOD をアクティブ化する」をご参照ください。
Simple Message Queue (formerly MNS) がアクティブ化されていること。詳細については、「SMQ をアクティブ化し、RAM ユーザーに SMQ へのアクセスを承認する」をご参照ください。
使用上の注意
ApsaraVideo VOD は複数のサービスリージョンをサポートしています。リージョン間のイベント通知構成は相互に独立しています。リージョンごとに異なるコールバックメソッドとコールバック URL を使用できます。
異なるリージョンに複数の Simple Message Queue (formerly MNS) キューを作成できます。ただし、ApsaraVideo VOD の各リージョンで Simple Message Queue (formerly MNS) コールバックに指定できる Simple Message Queue (formerly MNS) キューは 1 つだけです。次のルールに基づいて SMQ キューを指定することをお勧めします。
中国本土に動画を保存する場合、[中国 (上海)] リージョンの SMQ キューにコールバックメッセージをプッシュすることをお勧めします。 [中国 (上海)] 以外のリージョンのキューにコールバックメッセージをプッシュすると、わずかな遅延が発生する可能性があります。
シンガポールや日本 (東京) リージョンなど、中国本土以外に動画を保存する場合、動画が保存されているリージョンの SMQ キューにコールバックメッセージをプッシュすることをお勧めします。
たとえば、シンガポールリージョンに動画を保存する場合、[シンガポール] リージョンに SMQ キューを作成または使用することをお勧めします。
異なる環境での開発要件を満たすために、複数の SMQ コールバック URL を指定できます。詳細については、「複数のコールバック URL を指定する」をご参照ください。
手順
ApsaraVideo VOD に Simple Message Queue (formerly MNS) にアクセスする権限を付与します。
次のいずれかの方法を使用して、ApsaraVideo VOD に SMQ へのアクセスを承認できます。
方法 1: ApsaraVideo VOD に Object Storage Service (OSS)、Simple Message Queue (formerly MNS)、Alibaba Cloud CDN、および Key Management Service (KMS) のクラウド リソースにアクセスする権限を付与します。
Alibaba Cloud コンソール にログオンします。 RAM クイック承認 ページで、[承認] をクリックします。

方法 2: ApsaraVideo VOD のユーザー、ユーザーグループ、またはロールに Simple Message Queue (formerly MNS) にアクセスする権限を付与します。
AliyunMNSFullAccess ポリシーまたは AliyunMNSReadOnlyAccess ポリシーを ApsaraVideo VOD のユーザー、ユーザーグループ、またはロールにアタッチします。詳細については、「RAM ユーザーを作成し、権限を付与する」をご参照ください。
Simple Message Queue (formerly MNS) キューを作成します。
イベント通知を受信するように Simple Message Queue (formerly MNS) コールバックを構成します。
説明ApsaraVideo VOD コンソールを使用してイベントコールバックを構成すると、設定はグローバルに有効になります。また、異なる API 操作を呼び出して、グローバルコールバック設定を構成したり、ApsaraVideo VOD で特定のコールバックを構成したりすることもできます。
ApsaraVideo VOD コンソールを使用する
ApsaraVideo VOD コンソール にログオンします。
左側のナビゲーションウィンドウで、[構成管理] > [メディア処理] > [コールバック] を選択します。
上部のナビゲーションバーで、[ワークベンチ] ボタンの横にあるドロップダウンリストから目的のリージョンを選択します。
左側のナビゲーションウィンドウで、[構成管理] > [メディア処理] > [コールバック] を選択します。 [コールバック] ページで、コールバック設定を構成します。

[コールバック] セクションの [変更] をクリックします。
コールバックパラメータを構成します。次の表にパラメータを示します。
パラメータ
説明
コールバックメソッド
[Simple Message Queue (formerly MNS)] を選択します。
リージョン
イベント通知を構成する動画が保存されているリージョンを選択します。 Simple Message Queue (formerly MNS) キューが作成されているリージョンを選択することをお勧めします。
キュー
リージョン内のキューを選択します。
説明キューが存在しない場合は、SMQ キューを作成します。詳細については、「キューを作成する」をご参照ください。
イベント
ビジネス要件に基づいて、コールバックを構成するイベントを選択します。 ApsaraVideo VOD でサポートされているイベントとイベント通知コンテンツの詳細については、「イベント」をご参照ください。
説明[AI 処理完了] を選択すると、AIMediaAuditComplete、AIMediaDNAComplete、AIVideoTagComplete などのすべての AI イベントの通知が送信されます。
[OK] をクリックします。
ApsaraVideo VOD API または SDK を使用する
異なる API 操作を呼び出して、グローバルコールバック設定を構成したり、ApsaraVideo VOD で特定のコールバックを構成したりすることができます。
グローバルコールバック設定を構成する: SetMessageCallback 操作を呼び出します。
CallbackTypeを Simple Message Queue (formerly MNS) に設定し、EventTypeList、MnsEndpoint、MnsQueueNameなどの他のリクエストパラメータを指定します。特定のコールバックを構成する: メディアファイルをアップロードしたり、メディア処理ジョブを送信したりするために次の API 操作を呼び出すときに、
UserDataの MessageCallback フィールドを指定します。
説明コールバックを構成するには、
UserDataのMessageCallbackフィールドを指定します。 HTTP コールバック設定を有効にするには、グローバルイベント通知を有効にし、関連イベントを構成する必要があります。イベントをトリガーします。
イベント通知を構成した後、音声、動画、または画像ファイルのアップロードなどの操作を実行して、イベントをトリガーできます。また、トランスコードジョブやスナップショットジョブなどのメディア処理ジョブを送信して、イベントをトリガーすることもできます。
Simple Message Queue (formerly MNS) でコールバックメッセージを表示します。
コールバックがトリガーされると、ApsaraVideo VOD は指定した MNS キューにコールバックメッセージをプッシュします。 SMQ でメッセージを受信し、通知の内容を表示する必要があります。
SMQ コンソール、API、または SDK を使用してコールバックメッセージを受信できます。 SMQ コンソールを使用してコールバックメッセージを受信する方法については、「コンソールでキューを管理する」をご参照ください。 SMQ API または SDK を使用してコールバックメッセージを受信する方法については、「メッセージ関連の操作」をご参照ください。
オプション。 Simple Message Queue (formerly MNS) でコールバックメッセージを削除します。
SMQ キューは、複数のプロデューサーとコンシューマーからの大量の同時リクエストをサポートします。キューからメッセージがプルされると、指定された期間内はメッセージを再度プルすることはできません。メッセージは、消費された後、一定期間非表示になります。メッセージを手動で削除しない場合、再度消費される可能性があります。
SMQ コンソール、API、または SDK を使用してコールバックメッセージを削除できます。 SMQ コンソールを使用してコールバックメッセージを削除する方法については、「コンソールでキューを管理する」をご参照ください。 SMQ API または SDK を使用してコールバックメッセージを削除する方法については、「メッセージ関連の操作」をご参照ください。
SDK
Simple Message Queue (formerly MNS) は、複数の言語の SDK を提供しています。コールバックを構成した後、コードを使用してコールバックメッセージを消費できます。次の項目は、コールバックメッセージを消費する方法のリファレンスを提供します。
Java 用 SMQ SDK を使用してメッセージを消費する方法については、「キューの管理」をご参照ください。
Python 用 SMQ SDK を使用してメッセージを消費する方法については、「キューの管理」をご参照ください。
C# 用 SMQ SDK を使用してメッセージを消費する方法については、「キューの管理」をご参照ください。
PHP 用 SMQ SDK を使用してメッセージを消費する方法については、「キューの管理」をご参照ください。
記載されていないプログラミング言語の場合は、ReceiveMessage 操作を呼び出してメッセージを受信し、DeleteMessage 操作を呼び出してメッセージを削除できます。詳細については、「MNS API の呼び出し」をご参照ください。
関連情報
HTTP コールバックと SMQ コールバックの比較の詳細については、「HTTP コールバックと SMQ コールバックの比較」をご参照ください。
コールバックの構成時に問題が発生した場合は、「イベント通知に関するよくある質問」をご参照ください。