クリエイターは、あらゆるユーザー生成コンテンツ (UGC) プラットフォームの生命線です。ライブ ストリーミング UGC アプリケーションを構築する際の課題の 1 つは、視聴者を増やすために必要なツールをコンテンツ クリエーターに提供することです。視聴者がいなければ、クリエイターはコンテンツを作成する意欲がありません (また、意欲のあるクリエイターがいなければ、プラットフォームもありません)。視聴者は、交流するのが好きなクリエイターを見つけると、そのチャンネルに登録し、そのクリエイターがオンラインになるたびに視聴するのを楽しみにしています。ここで問題が発生します。ほとんどの視聴者は、お気に入りのクリエイターがオンラインかどうかを確認するために 24 時間年中無休でアプリケーションにログインしたままにしないためです。彼らが私たちのプラットフォームに戻るように促すには、お気に入りのストリームがオンラインになったときに視聴者に警告する通知システムを構築する必要があります.ありがたいことに、これは Amazon Interactive Video Service (Amazon IVS) で非常に簡単に構築できるものです。この投稿では、Amazon IVS ストリームがオンラインになったときに視聴者に通知する方法を見ていきます。 問題のあるストリーム上の EventBridge この機能を構築するには、Amazon IVS がストリームのステータスに関する変更イベントを Amazon EventBridge に送信するという事実を利用します。この統合は、ストリームごとに公開される大量のイベントがあるため、さまざまな目的に使用できます。公開されるイベントのほんの一部を次に示します。 セッションの作成/終了 ストリームの開始 / 終了 / 失敗 記録開始・終了 イベントの完全なリストについては、 参照してください。 ドキュメントを ご想像のとおり、利用するイベントは イベントです。ストリームが開始するたびにトリガーされるルールを作成しましょう。 Stream Start AWS Lambda ハンドラ関数の作成 EventBridge ルールを作成する前に、ルールから呼び出される AWS Lambda 関数を作成する必要があります (ルールを作成する前に存在している必要があります)。関数には、新しく利用可能になった Node 18.x を使用します。 この関数は、ストリームがライブになったときにサブスクライバーに通知を送信する方法になります。アプリケーションでは、通知を送信するのに最適な方法を使用できます。モバイル アプリまたは PWA を使用している場合は、プッシュ通知を送信することをお勧めします。購読者はメール通知を好むのではないでしょうか?または、ソーシャル メディア フィードまたは Discord/Slack チャネルにメッセージを投稿したい場合もあります。おそらく、Amazon SNS を使用して SMS メッセージをサブスクライバーに送信したいとお考えですか?ここにはさまざまなオプションがあり、制限はありません。私の場合、 を使用してプッシュ通知をモバイル デバイスに送信しています。 Pushover には、使いやすい優れた REST ベースの API があります。 Pushover export const handler = async(event) => { // push notification using Pushover.net const formData = new FormData(); formData.append('token', process.env.PUSHOVER_APP_TOKEN); formData.append('user', process.env.PUSHOVER_USER_TOKEN); formData.append('title', `${event.detail.channel_name} is Live!!!`); formData.append('message', 'Watch now!'); formData.append('url', 'https://recursive.codes'); const pushoverResponse = await fetch('https://api.pushover.net/1/messages.json', { method: 'POST', body: formData }); }; EventBridge ルールの作成 このルールは、AWS CLI ( )、任意の AWS SDK、または AWS コンソールで作成できます。この投稿では、コンソールに焦点を当てます。 Amazon EventBridge コンソールにログインし、 を選択して、 をクリックします。 docs [EventBridge ルール] [ルールの作成] 次のページで、ルールに 、オプションの 指定し、 を選択し、 を選択して、 をクリックします。 Name Description を Event bus Rule with an event pattern Next 選択します。 AWS イベントまたは EventBridge パートナー イベントを テスト目的でサンプル イベントを作成する場合は、 を選択し、次のパターンを貼り付けます。 [Enter my own] { "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Stream State Change", "source": "aws.ivs", "account": "123456789012", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": ["arn:aws:ivs:us-east-1:123456789012:channel/12345678-1a23-4567-a1bc-1a2b34567890"], "detail": { "event_name": "Stream Start" } } で を選択し、次に [ の します。 の場合は、 を選択します。最後に、 で、 を選択します。 [作成方法] [パターン フォームを使用] AWS サービス イベント ソース] を選択 AWS サービス Interactive Video Service (IVS) [イベント タイプ] [IVS Stream Stage Change] をそのままにしておくことも、 をクリックして次のように変更することで、このルールを イベントのみに限定することもできます。 イベント パターン [パターンの編集] Stream Start { "source": ["aws.ivs"], "detail-type": ["IVS Stream State Change"], "detail": { "event_name": ["Stream Start"] } } をクリックして、 上記のサンプル イベントと一致することを確認し、 をクリックします。 [テスト パターン] イベント パターンが [次へ] 次のステップでは、 で を選択します。 で を選択し、前に作成した Lambda 関数を見つけて選択します。 [ターゲット 1] [AWS サービス] [ターゲットの選択] [Lambda 関数] をクリックし、必要なタグを入力してから、ルールを確認して作成します。 [次へ] ライブに行く ルールをテストする準備が整いました。そのためには、Amazon IVS チャネルへのブロードキャストを開始するだけです。完了すると、ルールがトリガーされ、Lambda 関数が呼び出されます。私の場合は、モバイル デバイスに適切なプッシュ通知が表示されます。 まとめ この投稿では、プッシュ通知を送信する AWS Lambda 関数を作成し、Amazon IVS ライブ ストリームの開始時にその関数を呼び出す Amazon EventBridge ルールを作成しました。関数には、現在ブロードキャストしているチャネルに基づいてサブスクライバーを検索する追加のロジックが含まれる可能性があります。これは、イベントの詳細の キーに含まれる ARN に基づいて実行できます。詳細については、 を参照してください。 resources ドキュメント