【AWS】Lambda関数の定期実行にはEventBridgeを使うと簡単

2022/5/22

(最終更新: 2022/5/22

はじめに

AWS Lambda で、サーバレスに処理を実行することができます。

Lambda は単独では動きません。実行のトリガーを与えてやる必要があります。

本記事では、Lambda を定期的に実行するために EventBridge を利用してトリガーを与える方法を解説します。

この記事を読むとわかること

  • EventBridge を使って、Lambda 関数を定期実行する方法がわかります。
  • 定期実行処理の利用イメージがわかります。

【参考】この記事で学んだことを使って、アプリケーションを作ってみました! →

【AWS入門】電車遅延をSMS通知してくれるアプリを作成した(TwitterAPI利用)

【AWS入門】電車遅延をSMS通知してくれるアプリを作成した(TwitterAPI利用)

AWSサービスを使ってみよう。EventBridge+Lambda+AmazonSNSを使ってアプリを作成。

https://bunsugi.com/train-delay-check-app

EventBridge とは?

EventBridge とは、イベント駆動の非同期処理を実現する「イベントルータ」の一種であるフルマネージドサービスです。

イベントルータは、非同期処理のトリガーとなる「イベント」をシステム間でやり取りする際のルーティングを担います。

イベントルーターの役割 イベントルーターの役割

EventBridge は、他のサービスから受信したイベントを利用するだけでなく、 自分で

トリガーとなるイベントを定期的に発行するという機能も持っています。

利用イメージ

一つの例として、通勤に利用している路線の遅延を駅に行く前に検知するために、関連するツイート数が増えたら SMS で通知してくれる機能を考えています。

このうち、ツイート数のチェックを 15 分おきに自動実行する部分で、EventBridge を利用します。

  • EventBridge で、15 分おきにイベント発行
  • Lambda で、TwitterAPI を使った処理を実行する
  • 条件に合致した場合、SMS を送る

ちなみに、この図の中で利用している

SNS

もイベントルータの一種です。

SNS は、イベントを渡す先として、他のシステムや AWS サービスだけでなく

SMSやEメールといった配信機能

を選ぶことができるのが特徴です。

システム構成図 システム構成図

前提

  • AWS マネジメントコンソールにアクセスできること。
  • Lambda 関数を作成できていること。
※本記事では、AWSLambdaにローカルからデプロイする最も単純な方法【S3】 | エンジニアを目指す日常ブログで作成した Lambda 関数を使います。

Lambda 関数のトリガーとして EventBridge を追加する

EventBridge の設定方法を具体的に解説していきます。

トリガーの追加

Lambda のマネジメントコンソールから、トリガーを追加します。

トリガーの追加

トリガーの設定

トリガーを設定します。

トリガーの追加

  • トリガー:EventBridge (CloudWatch Events)
  • ルール:新規ルールの作成
  • スケジュール式:cron(0/15 * * * ? *)

スケジュール式は、「rate 式」と「cron 式」の2通りの書き方があります。

cron 式で「15 分おき」を表すには以下のように記載します。

cron(0/15 * * * ? *)

その他の書き方はルールのスケジュール式 - Amazon CloudWatch Eventsを参照。

実行を確認

15 分ほど待ちましょう。

「モニタリング」タブに実行結果が表示されます。

モニタリングタブに実行結果

CloudWatch のログを確認すると、console.log()の中身も確認できます。

実行結果

完了です。超簡単ですね!

まとめ

Lambda 関数の処理を定期的に実行する処理を作成することができました。

関連記事

Lambda 関数の作り方・ソースコードのアップロード方法

参考資料



個別連絡はこちらへ→Twitterお問い合わせ

プロフィール

プロフィールイメージ

はち子

事業会社のシステム部門に異動して4年目の会社員。システム企画/要件定義/システムアーキテクチャ等。

Twitter→@bun_sugi

過去の記事について

はてなブログに掲載の記事(主にプログラミングメモ)についてはこちらに掲載しております。(本ブログに移行中)

タグ一覧

関連記事

Copyright© 2022, エンジニアを目指す日常ブログ

お問い合わせ|プライバシーポリシー