1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

技術検証:AWS LambdaとEventBridgeを使用してYouTube APIから動画データをDynamoDBに挿入する実践手順

Last updated at Posted at 2024-12-07

はじめに

本記事は、前回の記事に続く検証内容となります。

前回は、AWS Lambdaを使用してYouTube APIから動画データを取得し、それをDynamoDBに保存する仕組みを構築しました。

スクリーンショット 2024-12-07 12.45.29.png

今回は、EventBridgeを活用して定期実行のスケジュールを設定し、さらなる効率化を目指した内容です。

少し複雑な検証内容ではありますが、興味のある方はぜひご覧ください!

前回の振り返り

前回は、YouTube APIの設定、Lambda関数の作成、データ挿入処理、IAMロールの設定まで、サーバーレス構成で動画データ管理システムを構築するステップを紹介しました。

これをさらに発展させ、毎日決まった時間に動画データを取得してデータベースに保存する仕組みを実装します。

知識整理

AWS Lambda、YouTube API、DynamoDBについては、前回の記事で基本的な知識を簡単にまとめていますので、そちらをご参考ください。

今回は、前回触れていなかった EventBridge について簡単に整理します。

EventBridgeとは

EventBridgeは、AWSが提供するイベント駆動型のサービスです。

特定の条件やスケジュールに基づいてイベントを発生させ、それを基に処理を実行できます。

例えば、毎日特定の時間にLambda関数を実行したり、他のAWSサービスからのイベントをトリガーにした処理を行うことが可能です。

過去の記事でもEventBridgeに関する技術検証を行っていますので、興味のある方はぜひご覧ください!

実際にやってみた

EventBridgeでスケジュールを設定

AWSマネジメントコンソールで「Lambda」を検索し、前回作成した「YouTubeDataFetcher」のLambda関数を選択します。

スクリーンショット 2024-12-07 11.20.01.png

「トリガーの追加」をクリックして新規ルールを作成します。ルールタイプは「スケジュール式」を選択し、設定を進めます。

スクリーンショット 2024-12-07 11.22.35.png

ここでは、日本時間の11時30分にスケジュールを設定しています。AWSの表示はデフォルトでUTCとなっているため、以下のようにcron式を設定してください。

cron(30 2 * * ? *)

※日本時間(JST)とUTCの時差(+9時間)に注意してください。

設定後、EventBridgeのスケジュールがLambda関数にトリガーされることを確認できます。

スクリーンショット 2024-12-07 11.24.29.png

EventBridgeのルールの修正

次に、先ほど作成したイベントスケジュールのルールを少し修正します。

スクリーンショット 2024-12-07 11.27.22.png

作成した「test」のルールを選択し、編集ボタンをクリックします。

ここでは1箇所だけ設定の修正が必要となりますので、その部分について画面ショット付きで解説します。

スクリーンショット 2024-12-07 11.29.18.png

Lambda関数に渡すデータ(動画IDなど)が必要な場合、EventBridgeで送信するペイロードを設定することができます。

{
  "video_id": "dQw4w9WgXcQ"  // テストしたいYouTube動画のID
}

Lambda関数を手動で実行する際にテストデータをJSON形式で受け渡ししていた部分を、EventBridge側のルールで渡すことができます。

スケジュール後の検証確認

次に、EventBridge側で設定したスケジュールが正しく実行されたか確認します。

スクリーンショット 2024-12-07 11.36.32.png

設定した時間ちょうどに、イベントスケジュールがトリガーされたことが確認できました。

次に、Lambda関数が正常にトリガーされているかを確認します。

スクリーンショット 2024-12-07 11.38.44.png

こちらでも、EventBridgeのトリガー通りの時間でLambda関数が実行されていることがわかります。

最後に、DynamoDB側でデータが正しく取得されているかを確認します。

スクリーンショット 2024-12-07 11.53.32.png

Lambda関数が実行され、YouTube APIから取得した動画データがDynamoDBに正常に挿入されたことが確認できました。

video_id title views likes dislikes published_at
sdBro6Vl15E 未経験からエンジニアへ!職種・年収・オススメ度を徹底解説! 46 5 0 2024-12-04T09:00:55Z

中身の属性や値も、想定通り取得されていることが確認でき、検証は大成功です!!

まとめ

今回の検証は、前回の内容も含めて予想以上に時間がかかりましたが、最終的に無事やり遂げることができ、良かったです。

特に、EventBridgeは昔に比べて画面操作が大きく変わっていて、使い慣れるのに時間がかかりましたが、それを乗り越えることができました!

この記事が、誰かの技術的な支えになれば嬉しいです!

関連記事

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?