タスクの結果をポーリングする代わりに、HTTP コールバック URL または RocketMQ を設定することで、EventBridge からタスク完了通知を受信できます。通知を受信したら、結果 API に 1 回クエリして出力を取得します。
背景
Alibaba Cloud Model Studio は EventBridge と統合して、設定されたイベントターゲットにタスク完了イベントを配信します。
非同期タスクが完了すると (成功または失敗)、タスクのステータスと ID を含むタスク完了イベント が EventBridge に報告され、EventBridge がこれをターゲットに転送します。その他のイベントターゲットについては、イベントターゲット および ターゲットサービスタイプをご参照ください。
ポーリングとイベント駆動型通知の比較
|
比較項目 |
ポーリング |
イベント駆動型 |
|
レート制限 |
結果 API にはレート制限があります (20 QPS) |
レート制限なし |
|
統合の複雑さ |
シンプル:結果 API をポーリングします。一部のタスク (テキストツーイメージ や テキストツービデオ など) では、ポーリング機能を組み込んだ SDK が提供されています。 |
EventBridge で HTTP コールバックまたは RocketMQ を設定し、通知を解析します。 |
|
サーバーリソースの消費 |
頻繁なクエリによりサーバーリソースを消費します。 |
リソースの消費なし:EventBridge がプッシュします。 |
|
レイテンシー |
ポーリング間隔に依存します。 |
ほぼリアルタイム:完了時に即座にプッシュされます。 |
|
推奨 |
並行性が低い、またはレイテンシーを許容できるシナリオ。 |
並行性が高い、またはレイテンシーの影響を受けやすいシナリオ。 |
EventBridge で、次のいずれかのイベントターゲットを設定してください。
-
HTTP コールバック URL:POST リクエストを受け入れる、パブリックにアクセス可能なエンドポイントまたは VPC エンドポイントです。ほとんどのシナリオに適しています。
-
RocketMQ:Message Queue for RocketMQ を介してイベントを消費します。高い信頼性が求められるシナリオに最適です。
オプション 1: HTTP コールバック URL の設定
概要
Alibaba Cloud Model Studio がタスクを完了すると、タスク完了イベントが EventBridge に報告されます。EventBridge は、このイベントを設定されたコールバックエンドポイントにプッシュします。コールバックエンドポイントは、イベントを解析して正常に処理されたタスク ID を抽出し、結果クエリ API を一度呼び出してタスクの出力を取得します。
メリット:直接ポーリングする方法と比較して、このアプローチでは不要なポーリングリクエストを回避し、リソースの消費を削減し、結果クエリ API のレート制限に対する負荷を軽減します。
課金: EventBridge の課金。
|
たとえば、テキストツーイメージの HTTP コールバック URL を使用した非同期呼び出しフローは次のとおりです。
|
|
操作手順
オプション 2:RocketMQ の設定
概要
Alibaba Cloud Model Studio がタスクを完了すると、タスク完了イベントを EventBridge に報告します。EventBridge はそのイベントを Message Queue for RocketMQ に転送します。アプリケーションはメッセージキューをリッスンし、メッセージを消費して完了したタスク ID を抽出し、結果クエリ API を一度呼び出してタスクの出力を取得します。
利点:HTTP コールバック方式とは異なり、RocketMQ はメッセージ配信を保証し、失敗時のリトライをサポートしているため、高いメッセージの信頼性が求められるシナリオに最適です。
課金:EventBridge の課金、RocketMQ の課金。
|
例えば、Text-to-Image で RocketMQ を使用した非同期呼び出しのフローは次のとおりです:
|
|
操作手順
よくある質問
1 つのイベントルールに複数のイベントターゲットを設定できますか?
はい。1 つのイベントルールに複数のイベントターゲットを設定できます。設定した場合、同じイベントがすべてのターゲットに配信されます。
イベントルールを設定しましたが、イベントを受信できません。なぜですか?
イベント転送ルールのリージョンが、イベントのリージョンと一致していることを確認してください。たとえば、Singapore リージョンで設定したルールは Singapore のイベントのみを転送し、その他のリージョンのイベントは転送しません。コンソールページ上部のリージョンセレクターで、EventBridge のリージョンを確認してください。
HTTP/HTTPS サービスのリクエストがタイムアウトする、またはエラーが返されるのはなぜですか?
次の手順で切り分けてください:
-
HTTP/HTTPS サービスのステータスを確認してください。
-
イベントターゲットに設定した URL を確認してください。
-
イベントターゲットに設定したネットワークタイプを確認してください:
-
PublicNetwork:パブリックネットワーク。URL がパブリックネットワークからアクセス可能であることを確認してください。
-
PrivateNetwork:VPC ネットワーク。これを選択した場合は、VPC、vSwitch、および SecurityGroup の設定を確認してください。
-
VPC と vSwitch の設定を確認してください。
-
SecurityGroup の設定を確認してください。
-
-
-
その他のパラメータ設定については、「Event target parameters」をご参照ください。

