はじめに
本記事は、前回の記事に続く検証内容となります。
前回は、AWS Lambdaを使用してYouTube APIから動画データを取得し、それをDynamoDBに保存する仕組みを構築しました。
今回は、EventBridgeを活用して定期実行のスケジュールを設定し、さらなる効率化を目指した内容です。
少し複雑な検証内容ではありますが、興味のある方はぜひご覧ください!
前回の振り返り
前回は、YouTube APIの設定、Lambda関数の作成、データ挿入処理、IAMロールの設定まで、サーバーレス構成で動画データ管理システムを構築するステップを紹介しました。
これをさらに発展させ、毎日決まった時間に動画データを取得してデータベースに保存する仕組みを実装します。
知識整理
AWS Lambda、YouTube API、DynamoDBについては、前回の記事で基本的な知識を簡単にまとめていますので、そちらをご参考ください。
今回は、前回触れていなかった EventBridge について簡単に整理します。
EventBridgeとは
EventBridgeは、AWSが提供するイベント駆動型のサービスです。
特定の条件やスケジュールに基づいてイベントを発生させ、それを基に処理を実行できます。
例えば、毎日特定の時間にLambda関数を実行したり、他のAWSサービスからのイベントをトリガーにした処理を行うことが可能です。
過去の記事でもEventBridgeに関する技術検証を行っていますので、興味のある方はぜひご覧ください!
実際にやってみた
EventBridgeでスケジュールを設定
AWSマネジメントコンソールで「Lambda」を検索し、前回作成した「YouTubeDataFetcher
」のLambda関数を選択します。
「トリガーの追加」をクリックして新規ルールを作成します。ルールタイプは「スケジュール式」を選択し、設定を進めます。
ここでは、日本時間の11時30分にスケジュールを設定しています。AWSの表示はデフォルトでUTCとなっているため、以下のようにcron式を設定してください。
cron(30 2 * * ? *)
※日本時間(JST)とUTCの時差(+9時間)に注意してください。
設定後、EventBridgeのスケジュールがLambda関数にトリガーされることを確認できます。
EventBridgeのルールの修正
次に、先ほど作成したイベントスケジュールのルールを少し修正します。
作成した「test」のルールを選択し、編集ボタンをクリックします。
ここでは1箇所だけ設定の修正が必要となりますので、その部分について画面ショット付きで解説します。
Lambda関数に渡すデータ(動画IDなど)が必要な場合、EventBridgeで送信するペイロードを設定することができます。
{
"video_id": "dQw4w9WgXcQ" // テストしたいYouTube動画のID
}
Lambda関数を手動で実行する際にテストデータをJSON形式で受け渡ししていた部分を、EventBridge側のルールで渡すことができます。
スケジュール後の検証確認
次に、EventBridge側で設定したスケジュールが正しく実行されたか確認します。
設定した時間ちょうどに、イベントスケジュールがトリガーされたことが確認できました。
次に、Lambda関数が正常にトリガーされているかを確認します。
こちらでも、EventBridgeのトリガー通りの時間でLambda関数が実行されていることがわかります。
最後に、DynamoDB側でデータが正しく取得されているかを確認します。
Lambda関数が実行され、YouTube APIから取得した動画データがDynamoDBに正常に挿入されたことが確認できました。
video_id | title | views | likes | dislikes | published_at |
---|---|---|---|---|---|
sdBro6Vl15E | 未経験からエンジニアへ!職種・年収・オススメ度を徹底解説! | 46 | 5 | 0 | 2024-12-04T09:00:55Z |
中身の属性や値も、想定通り取得されていることが確認でき、検証は大成功です!!
まとめ
今回の検証は、前回の内容も含めて予想以上に時間がかかりましたが、最終的に無事やり遂げることができ、良かったです。
特に、EventBridgeは昔に比べて画面操作が大きく変わっていて、使い慣れるのに時間がかかりましたが、それを乗り越えることができました!
この記事が、誰かの技術的な支えになれば嬉しいです!
関連記事