AWS Lambdaをちょっと使ってみる案件が思い付きで発生してしまったので定期実行してみたメモ。

利用環境


  • AWS Lambda (Node.js 8.10)
  • AWS CloudWatch

作る


とりあえずおもむろにAWSのコンソールにログインして適当に触るところから始めます。

今回はNode.jsでやります。適当にコードを書きます。「Hello testhogehoge」と出力するコードを書きました。

1
2
3
exports.handler = async (event) => {
console.log("Hello testhogehoge");
};

右上の「テスト」を押しまくるとCloudWatchにいい感じにログが出力されました。

定期実行したい


定期実行するには「Amazon CloudWatch Events」を使う必要があると公式ドキュメントに書いてます。ので、イベントのトリガーに「Amazon CloudWatch Events」を設定します。

AWS Lambda を Amazon CloudWatch Events に使用する

後は適当にポチポチすれば終わるんですが、cronの設定値がちょっとハマりどころで、例えばこんな感じcron(*/1 * * * *)だとダメなんですね。右上の保存時に下記のようなエラーが発生します。

1
2
Parameter ScheduleExpression is not valid.
(Service: AmazonCloudWatchEvents; Status Code: 400; Error Code: ValidationException; Request ID: x...)

これ、先日同僚がハマってたのですぐわかりました。なのでcron(0/1 * * * ? *)にしました。結果をマッハで確認したいので1分おきにします。

CloudWatchのイベントのところに1分おきに実行するイベントができてる。

後は1分待てばログがでてます。

感想


なにこれマジ簡単すぎないすか…

余談: なんで急にこんなことしだしたのか?


え~本サイトは4/18(明後日)の日中にサーバメンテナンスで停止するわけですが、せっかくなので停止の瞬間を監視してみたいと思いました。なので、今、本日販売となったAnno1800 (遷移先は音が出ます)をプレイするのを我慢しながらマッハで構築しながらマッハで記事を書いてます。