このトピックでは、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 公式 Web サイトにアクセスします。 詳細については、「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を指定できます。 詳細については、「Specify multiple callback URLs」をご参照ください。
手順
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 管理コンソールにログインします。 [クラウドリソースアクセス権限付与] ページで、[権限付与ポリシーの確認] をクリックします。
方法2: ApsaraVideo VODのユーザー、ユーザーグループ、またはロールにSimple Message Queue (formerly MNS) にアクセスする権限を付与します。
ApsaraVideo VODのユーザー、ユーザーグループ、またはロールにAliyunMNSFullAccessまたはAliyunMNSReadOnlyAccessポリシーをアタッチします。 詳細については、「Create and grant permissions to a RAM user」をご参照ください。
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キューを作成します。 詳細については、「キューの作成」をご参照ください。
Events
ビジネス要件に基づいてコールバックを設定するイベントを選択します。 ApsaraVideo VODでサポートされているイベントおよびイベント通知コンテンツの詳細については、「イベント」をご参照ください。
説明[AI処理完了] を選択すると、AIMediaAuditComplete、AIMediaDNAComplete、AIDoTagCompleteなどのすべての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を提供します。 コールバックを設定した後、コードを使用してコールバックメッセージを消費できます。 次の項目は、コールバックメッセージを使用する方法に関する参照を提供します。
SMQ SDK For Javaを使用してメッセージを消費する方法については、「キューの管理」をご参照ください。
SMQ SDK For Pythonを使用してメッセージを消費する方法については、「キューの管理」をご参照ください。
SMQ SDK For C# を使用してメッセージを消費する方法については、「キューの管理」をご参照ください。
SMQ SDK For PHPを使用してメッセージを消費する方法については、「キューの管理」をご参照ください。
記載されていないプログラミング言語では、ReceiveMessage操作を呼び出してメッセージを受信し、DeleteMessage操作を呼び出してメッセージを削除できます。 詳細については、「MNS APIの呼び出し」をご参照ください。
関連ドキュメント
HTTPコールバックとSMQコールバックの比較の詳細については、「HTTPコールバックメソッドとMNSコールバックメソッドの比較」をご参照ください。
コールバックの設定時に問題が発生した場合は、「イベント通知に関するFAQ」をご参照ください。