IVS Real-Time Streaming で Amazon EventBridge を使用する - Amazon IVS

IVS Real-Time Streaming で Amazon EventBridge を使用する

Amazon EventBridge を使用して、Amazon Interactive Video Service (IVS) ストリームをモニタリングできます。

Amazon IVS は、ストリームのステータスに関する変更イベントを Amazon EventBridge に送信します。配信されたすべてのイベントが有効です。ただし、イベントはベストエフォートベースで送信されます。つまり、以下を保証するものではありません。

  • イベントが配信される – 指定されたイベントの実行 (参加者による公開など) は可能ですが、Amazon IVS は、対応するイベントを EventBridge に送信しないことがあります。Amazon IVS は、配信を中止する前に、数時間にわたりイベントの配信を試みます。

  • 配信されたイベントが指定された時間内に到着する — 数時間前のイベントを受け取ることもあります。

  • イベントが順序通りに配信される – イベントは、特に短い時間内に送信された場合、順不同になることがあります。例えば、Participant Published の前に Participant Unpublished が送信される場合があります。

イベントが欠落したり、遅延したり、順序が違ったりすることはまれですが、通知イベントの順序や存在に依存するビジネスクリティカルなプログラムを作成するときは、こうした可能性に対処しておく必要があります。

EventBridge ルールは、以下のイベントに対して作成できます。

イベントタイプ イベント 配信するタイミング
IVS コンポジションの状態変化 送信先障害 送信先への出力に失敗しました。例えば、ストリームキーがないか、別のブロードキャストが進行中の場合には、あるチャンネルへのブロードキャストが失敗します。
IVS コンポジションの状態変化 送信先の開始 送信先への出力が正常に開始されました。
IVS コンポジションの状態変化 送信先の終了 送信先への出力が完了しました。
IVS コンポジションの状態変化 送信先の再接続 送信先への出力が中断されました。再接続を試みています。
IVS コンポジションの状態変化 セッションの開始 コンポジションセッションが作成されました。コンポジションプロセスのパイプラインが正常に初期化されると、このイベントが発生します。この時点で、コンポジションパイプラインはステージに正常にサブスクライブされメディアを受信しており、またビデオを作成できるようになりました。
IVS コンポジションの状態変化 セッションの終了 コンポジションセッションが完了しました。
IVS コンポジションの状態変化 セッションの失敗 使用不能なステージリソースか、その他の内部エラーが原因で Composition パイプラインが初期化に失敗しました。
IVS 参加者の録画状態の変更 Recording Start パブリッシャーがステージに接続し、S3 に記録されています。
IVS 参加者の録画状態の変更 Recording End パブリッシャーがステージから切断され、残りのすべてのファイルが S3 に書き込まれました。
IVS 参加者の録画状態の変更 Recording Start Failure パブリッシャーはステージに接続しましたが、エラー (S3 バケットが存在しない、または正しいリージョンにないなど) により、録画の開始に失敗しました。このパブリッシャーのライブストリームは録画されません
IVS 参加者の録画状態の変更 Recording End Failure 録画中に発生したエラー (メディアプレイリストの書き込みの試行が失敗し続けた場合など) により、録画は失敗して終了します。一部のオブジェクトが、設定された保存場所に引き続き書き込まれることがあります。
IVS Stage Update Participant Published 参加者がステージへの公開を開始したとき。
IVS Stage Update Participant Unpublished 参加者がステージへの公開を停止したとき。
IVS Stage Update 参加者の公開エラー 参加者がステージに公開しようとしましたが失敗しました。

Amazon IVS の Amazon EventBridge ルールを作成する

Amazon IVS が発行したイベントをトリガーするルールを作成できます。「Amazon EventBridge ユーザーガイド」の「Amazon EventBridge でルールを作成する」にある手順に従います。サービスを選択する際に、[Interactive Video Service (IVS)] を選択します。

例: Composition の状態変化

Destination Failure: このイベントは、送信先への出力に失敗したときに送信されます。例えば、ストリームキーがないか、別のブロードキャストが進行中の場合には、あるチャンネルへのブロードキャストが失敗します。

{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Composition State Change", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:composition/123456789012" ], "detail": { "event_name": "Destination Failure", "stage_arn": "<stage-arn>", "id": "<Destination-id>", "reason": "eg. stream key invalid" } }

Destination Start: このイベントは、送信先への出力が正常に開始されたときに送信されます。

{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Composition State Change", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:composition/123456789012" ], "detail": { "event_name": "Destination Start", "stage_arn": "<stage-arn>", "id": "<destination-id>", } }

Destination End: このイベントは、送信先への出力が完了したときに送信されます。

{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Composition State Change", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:composition/123456789012" ], "detail": { "event_name": "Destination End", "stage_arn": "<stage-arn>", "id": "<Destination-id>", } }

Destination Reconnecting: このイベントは、送信先への出力が中断され、再接続が試行中である場合に送信されます。

{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Composition State Change", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:composition/123456789012" ], "detail": { "event_name": "Destination Reconnecting", "stage_arn": "<stage-arn>", "id": "<Destination-id>", } }

Session Start: このイベントは、コンポジションセッションが作成されたときに送信されます。コンポジションプロセスのパイプラインが正常に初期化されると、このイベントが発生します。この時点で、コンポジションパイプラインはステージに正常にサブスクライブされメディアを受信しており、またビデオを作成できるようになりました。

{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Composition State Change", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:composition/123456789012" ], "detail": { "event_name": "Session Start", "stage_arn": "<stage-arn>" } }

Session End: このイベントは、コンポジションセッションが完了し、すべてのリソースが削除されたときに送信されます。

{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Composition State Change", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:composition/123456789012" ], "detail": { "event_name": "Session End", "stage_arn": "<stage-arn>" } }

Session Failure: このイベントは、ステージリソースが使用できないかステージに参加者がいない場合、またはその他の内部エラーが原因で、Composition パイプラインが初期化に失敗した場合に送信されます。

{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Composition State Change", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:composition/123456789012" ], "detail": { "event_name": "Session Failure", "stage_arn": "<stage-arn>", "reason": "eg. no participants in the stage" } }

例: 個々の参加者の録画状態の変更

Recording Start: このイベントは、パブリッシャーがステージに接続し、S3 に記録されているときに送信されます。

{ "version": "0", "id": "12345678-1a23-4567-a1bc-1a2b34567890", "detail-type": "IVS Participant Recording State Change", "source": "aws.ivs", "account": "123456789012", "time": "2024-03-13T22:09:58Z", "region": "us-east-1", "resources": ["arn:aws:ivs:us-west-2:aws_account_id:stage/AbCdef1G2hij"], "detail": { "session_id": "st-ZyXwvu1T2s", "event_name": "Recording Start", "participant_id": "xYz1c2d3e4f", "recording_s3_bucket_name": "bucket-name", "recording_s3_key_prefix": "<stage_id>/<session_id>/<participant_id>/2024-01-01T12-00-55Z" } }

Recording End: このイベントは、パブリッシャーがステージから切断され、残りのすべてのファイルが S3 に書き込まれたときに送信されます。

{ "version": "0", "id": "12345678-1a23-4567-a1bc-1a2b34567890", "detail-type": "IVS Participant Recording State Change", "source": "aws.ivs", "account": "123456789012", "time": "2024-03-13T22:19:04Z", "region": "us-east-1", "resources": ["arn:aws:ivs:us-west-2:aws_account_id:stage/AbCdef1G2hij"], "detail": { "session_id": "st-ZyXwvu1T2s", "event_name": "Recording End", "participant_id": "xYz1c2d3e4f", "recording_s3_bucket_name": "bucket-name", "recording_s3_key_prefix": "<stage_id>/<session_id>/<participant_id>/2024-01-01T12-00-55Z" "recording_duration_ms": 547327 } }

Recording Start Failure: このイベントは、パブリッシャーはステージに接続しましたが、エラー (S3 バケットが存在しない、または正しいリージョンにないなど) により、録画の開始に失敗しました。パブリッシャーのライブストリームは録画されません。

{ "version": "0", "id": "12345678-1a23-4567-a1bc-1a2b34567890", "detail-type": "IVS Participant Recording State Change", "source": "aws.ivs", "account": "123456789012", "time": "2024-03-13T22:09:58Z", "region": "us-east-1", "resources": ["arn:aws:ivs:us-west-2:aws_account_id:stage/AbCdef1G2hij"], "detail": { "session_id": "st-ZyXwvu1T2s", "event_name": "Recording Start Failure", "participant_id": "xYz1c2d3e4f", "recording_s3_bucket_name": "bucket-name", "recording_s3_key_prefix": "<stage_id>/<session_id>/<participant_id>/2024-01-01T12-00-55Z" } }

Recording End Failure: このイベントは、録画中に発生したエラー (マスタープレイリストの書き込みの試行が失敗した場合など) により、録画が失敗して終了したときに送信されます。一部のオブジェクトが、設定された保存場所に引き続き書き込まれることがあります。

{ "version": "0", "id": "12345678-1a23-4567-a1bc-1a2b34567890", "detail-type": "IVS Participant Recording State Change", "source": "aws.ivs", "account": "123456789012", "time": "2024-03-13T22:19:04Z", "region": "us-east-1", "resources": ["arn:aws:ivs:us-west-2:aws_account_id:stage/AbCdef1G2hij"], "detail": { "session_id": "st-ZyXwvu1T2s", "event_name": "Recording End Failure", "participant_id": "xYz1c2d3e4f", "recording_s3_bucket_name": "bucket-name", "recording_s3_key_prefix": "<stage_id>/<session_id>/<participant_id>/2024-01-01T12-00-55Z" "recording_duration_ms": 547327 } }

例: Stage Update

このイベントには、イベント名 (イベントを分類する) とイベントに関するメタデータが含まれます。メタデータには、イベントをトリガーした参加者 ID、関連するステージ ID とセッション ID、ユーザー ID が含まれます。

Participant Published: このイベントは、参加者がステージへの公開を開始したときに送信されます。

{ "version": "0", "id": "12345678-1a23-4567-a1bc-1a2b34567890", "detail-type": "IVS Stage Update", "source": "aws.ivs", "account": "123456789012", "time": "2020-06-23T20:12:36Z", "region": "us-west-2", "resources": [ "arn:aws:ivs:us-west-2:123456789012:stage/AbCdef1G2hij" ], "detail": { "session_id": "st-ZyXwvu1T2s", "event_name": "Participant Published", "user_id": "Your User Id", "participant_id": "xYz1c2d3e4f" } }

Participant Unpublished: このイベントは、参加者がステージへの公開を停止したときに送信されます。

{ "version": "0", "id": "12345678-1a23-4567-a1bc-1a2b34567890", "detail-type": "IVS Stage Update", "source": "aws.ivs", "account": "123456789012", "time": "2020-06-23T20:12:36Z", "region": "us-west-2", "resources": [ "arn:aws:ivs:us-west-2:123456789012:stage/AbCdef1G2hij" ], "detail": { "session_id": "st-ZyXwvu1T2s", "event_name": "Participant Unpublished", "user_id": "Your User Id", "participant_id": "xYz1c2d3e4f" } }

Participant Publish Error: このイベントは、参加者がステージへの公開の試行に失敗したときに送信されます。

{ "version": "0", "id": "12345678-1a23-4567-a1bc-1a2b34567890", "detail-type": "IVS Stage Update", "source": "aws.ivs", "account": "123456789012", "time": "2020-06-23T20:12:36Z", "region": "us-west-2", "resources": [ "arn:aws:ivs:us-west-2:123456789012:stage/AbCdef1G2hij" ], "detail": { "session_id": "st-ZyXwvu1T2s", "event_name": "Participant Publish Error", "event_time": "2024-08-13T14:38:17.089061676Z", "user_id": "Your User Id", "participant_id": "xYz1c2d3e4f", "error_code": "BITRATE_EXCEEDED" } }