LoginSignup
5
5

More than 5 years have passed since last update.

AWS LambdaのSchedule Taskを使ってOpsWorksのデプロイ状況をslackに通知する

Posted at

Lambdaでスケジュール機能(cron)が使えるようになったことで、一段とサーバレスでbotを実現できるようになってきました。
http://aws.typepad.com/aws_japan/2015/10/aws-lambda-update-python-vpc-increased-function-duration-scheduling-and-more.html

前に作った物はこちら
LambdaでAppStoreのレビューを拾ってSlackに流し込む
AWS LambdaのSchedule Taskを使ってエゴサーチをslackに流し込む

今回は、OpsWorksでデプロイを実行した時の状況をSlackに通知してくれる物を作りました。

仕組みはもう使いまわしで、こんな感じでOpsWorksのデプロイ情報を見て、デプロイが始まったらSlackに通知し、デプロイが終わったもしくは失敗したら、Slackに通知してくれます。

lambda_opsworks_deploy_listener.png

Slackにはこんな感じで通知してくれます。

slack_post_image.png

この仕組で問題点としてあるのが、AWS Lambdaは5分以下のスケジュールが指定できないということ。
http://docs.aws.amazon.com/ja_jp/lambda/latest/dg/getting-started-scheduled-events.html
毎分みたいなcronを書いてもエラーになってしまいます。
5分毎にチェックした場合に、5分の間にデプロイが開始して終わってしまうと、、このスクリプトの仕組み上、通知が来ない。

過去のデプロイIDをずっと保持すれば、完了した事を通知できるけど、どれぐらい保存するかというのと、いつ消すのかが課題として残る。

Lambdaのスケジュールタスクが1分にも対応してくれると嬉しいな。

5
5
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
5
5