AWS プログラミング

【AWS Terraform 0.12】S3 + Lambda + CloudWatchでバケットに置いたLambda関数を定期的に実行する【Scheduled Event】

更新日:

こんにちは、クライン(@kleinitblog)です。

 

今回は、TerraformでS3 + Lambda + CloudWatchを使ってS3のバケットに置いたLambda関数(zipファイル)を定期実行する方法をまとめていきます。

基本的にそれぞれのリソースのソースコードを分けて載せていきますので、お使いの環境に併せて必要な部分を参考にしてもらえたら嬉しいです!

 

ちなみにTerraformについて学習したい方はUdemyのLearn DevOps: Infrastructure Automation With Terraform がめちゃくちゃおすすめです。

 

 

 

 

1.  Lambdaを置くS3バケットを作成

Lambda関数(zipファイル)を置くS3のバケットを作成します。

versioningはお好みでtrueにしてください。(デフォルトはfalseです)

 

 

2. Lambdaを作成

Lambdaを作成します。

 

あくまでインフラリソースとしての作成なので、Lambdaの関数(zipファイル)は任意のものを使用してください。

 

 

値の簡単な説明

function_name任意の関数名
s3_bucketzipファイルを置くバケット名(ここでは上記バケットを指定)
s3_keyzipファイルを置く
handler実行ハンドラ名
runtime使用言語バージョン
timeoutタイムアウト
roleLambdaにアタッチするロールのリソース
publish
Lambdaのバージョン管理を有効化

 

3. CloudWatchのイベントを作成

CloudWatchのScheduled Eventを作成します。

 

イベントは通常のクーロン形式で記入できます。

 

 

 

4. イベントをLambda側で許可する

最後に、作成したCloudWatchのイベントを実行することを、Lambda側で許可します。

(Permissionを与える)

 

 

以上で完了です。

お使いの環境に併せて必要な部分を参考にしてもらえたら幸いです!

 

インフラのコード化は素晴らしい!

 

Terraformに限らずインフラのコード化はとても素晴らしく、今後需要も上がっていくのではないでしょうか。

(バックエンド不要論とか言われてますが。。。笑)

 

個人的にはとても良い技術だと思います!

上述しましたが、UdemyのLearn DevOps: Infrastructure Automation With Terraform が教材としておすすめなので英語に抵抗のない方はぜひチェックしてみてください!

 

 

 

よく読まれている記事

1

  現在5年目のエンジニアで26歳です。 今回は20代の現役エンジニアとして、自分も含め転職について考えている方に向けて20代エンジニア転職に完全特化したおすすめのサービスを3つ紹介していき ...

2

これからエンジニアになりたい、プログラミングを使えるようになりたいという方に向けて 山のようにあるプログラミングスクールの中から、特におすすめなスクールをタイプ別に逆引きで3つ紹介します。 &nbsp ...

3

みなさんはを使っていますでしょうか。   本記事を見ていただいているということは、   プログラミングの勉強でを使うことに興味がある、 もしくはこれから動画を購入したいけどどれを買 ...

-AWS, プログラミング
-,

Copyright© クラインの備忘壺 , 2019 All Rights Reserved.