17
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

発表されたばっかりの AWS Lambda の Scheduled Event を使って Lambda をスケジュール実行してみる

Posted at

AWS re:Invent で念願の Lambda の定期実行がサポートされました。

【AWS発表】AWS Lambdaのアップデート – Python, VPC, 実行時間の延長, スケジュールなど

API Gateway と組み合わせてサーバーレスのシステムが組めるようになったけど、
実際にサービス等で利用する場合には Lambda のスケジュール実行が出来なくと困ることが多いですが、
やっとサポートされました。

ということで、実際に試してみました。
手順としては、Lambda 実行用のロールを作成し、その後 Lambda を作成し、それに対して Scheduled Event を設定する流れです。

Lambda 実行用ロール作成

Lambda の実行には、実行権限の付いたロールが必要なので作成します。
IAM から作成できます。

  1. ロール名の設定
    入力して次のステップをクリック。ロール名はテキトーです。
    create_role_0.png

  2. ロールタイプの選択
    AWS Lambda を選択。
    create_role_1.png

  3. ポリシーのアタッチ
    AWSLambdaBasicExecutionRole にチェックを入れて、次のステップをクリック。
    create_role_2.png

  4. 確認画面
    問題なければ、ロールの作成をクリック。
    create_role_3.png
    これでロールの作成は完了です。

テスト実行用の Lambda の作成

  1. Lambda のページを開く
    Get Started Now をクリック。
    create_lambda_0.png

  2. blueprint を選択
    今回はテストなので、hello-world を選択します。
    create_lambda_1.png

  3. Function の設定をします。
    Name に HelloWorldFunction を入力し、Role に作成したロールを選択。
    実行するコードはテスト用に console に Hello World !!! と吐くだけに変更しました。
    create_lambda_2.png

  4. 確認画面
    問題なければ、Create function をクリックして、function を作成します。
    create_lambda_3.png

  5. function 作成完了
    create_lambda_4.png

Lambda に定期実行を設定

次に、作成した Function に対してスケジュール設定を行います。

  1. Event sources タブを開く
    Add event source をクリック
    create_lambda_5.png

  2. event source を追加
    5 分間隔で実行するよう設定します。実際は、時間指定とかも出来ます。
    Event souce type に Scheduled Event を選択。
    Name にイベント名を入力。
    Schedule expression に rate(5 minutes) を選択。
    Enable event source は Enable now を選択。
    Submit をクリックします。
    create_lambda_6.png

  3. 作成した event source を確認
    create_lambda_7.png

実際に定期実行されるか、CloudWatch で確認

create_lambda_8.png

ログに、Lambda で console に吐いた Hello World !!!! が表示されてますので、成功ですね。

まとめ

とにかく簡単にサクッとスケジュール設定が出来ました。
最初にあげたように Web サービスや、アプリでサービスを行う際、殆どの場合スケジュール実行するようなタスクが絡んでくるので、今回の機能追加によって Lambda の有用性はかなり上がったかと思います。しかも元々かなり低価格ですし。

AWS API Gateway + AWS Lambda + ( CloudFront ) + DynamoDB + ( SPA or NativeApp ) のような構成でサービスも運営できちゃいます。
今回地味に、API Gateway も東京リージョンも対応したみたいなので、全てを東京リージョンで運営できますので、ドンドン Lambda を使っていこうと思いました。

17
15
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
17
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?