LoginSignup
0
1

More than 5 years have passed since last update.

AWSCLIでLambda関数の実行をスケジューリングする

Last updated at Posted at 2018-05-24

AWSACLを使ってCloudWatch EventsにRuleを設定します

今回は毎朝10時に関数を実行するルールです。

まずルールを作成 *put-ruleコマンド

下のようにルールを作成する。

aws events put-rule --name "ルール名" --schedule-expression "cron(0 1 ? * * *)"

cron式の説明

cron式は公式に書いてありますが下の通りです。

cron(Minutes Hours Day-of-month Month Day-of-week Year)

「?」は直前の指定に対して使われるワイルドカードです。今回の場合は「時間を01:00を指定したが、日付はいつでもいい」という意味です。

関数に アクセス権限の管理設定add-permission

 aws lambda add-permission \
 --function-name Lambda関数名 \
 --statement-id ステートメント識別子 \
 --action 'lambda:InvokeFunction' \         //許可したいLambdaアクション
 --principal events.amazonaws.com \
 --source-arn arn:aws:events:ap-east-1:アカウント番号:role:関数名

ルールと関数の結びつけ put-targets

aws events put-targets --rule ルール名 --targets "Id"="0","Arn"="arn:aws:lambda:us-east-1:hoge:function:Lambda関数名"

こんな感じでルールができました。

あとはコンソールでCloudWatch Events をLambda式のトリガーに指定すればいいです。


参考にした記事
AWS Lambdaを1分間隔でスケジュール実行する #reinvent

AWS公式
チュートリアル:CloudWatchイベントを使用したAWS Lambda関数のスケジュール設定
put rule
Rate または Cron を使用したスケジュール式
add-permission
put-targets

日本時間について
WS Lambda を毎月1日 0:00 (JST)に実行する方法

0
1
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
0
1