スキマ時間に作成したAWS Lambdaを活用したサーバーレスアプリケーションのご紹介

スキマ時間に作成したAWS Lambdaを活用したサーバーレスアプリケーションのご紹介

この10月はコロナの感染者が激減しており、
当方も無事に運動会で子供の勇姿を見ることができました。やっさんでございます。

サーバーレス、皆さんは活用してらっしゃいますか。
本エントリーでは当方がスキマ時間に作成しましたAWS Lambdaによるサーバーレスアプリケーションをご紹介します。

サーバーレスアプリケーション一覧

  • Togglレポート ~ Toggl のタイムレポートを毎日Slackに通知する
  • AWS利用料金通知 ~ AWSの利用料金を毎日Slackに通知する
  • Slackチャンネル履歴削除 ~ Slackのチャンネルの履歴を削除する
  • Chatwork新規メッセージ通知 ~ Chatworkの新規メッセージのイベントをSlackに通知する
  • AWSインスタンス絶対に止めるマン ~ AWSのインスタンスを必ず止める

フロントはSlackとなっており、Lambdaの実行結果は全てSlackに通知されるようになっています。

Togglレポート


TogglはタイムトラッキングのSAASです。TogglはAPIを提供しており、サーバーレスアプリケーションはToggleのAPIにアクセスしタイムトラッキング情報を取得しております。プロジェクト別の工数を計りたいニーズがありまして作成しました。他と異なりGo言語でコーディングしています。

AWS利用料金通知


AWSの利用料金を毎日Slackに通知します。AWSの請求メトリクスを利用していますので、AWSアカウントの 請求アラートの有効化 が必要です。閾値を超えるとアタッチメントの色が代わり、警告してくれるようになっています。AWS Organizationに対応していないので、AWS Organization対応版を今後作成していきたいと思っています。

Slackチャンネル履歴削除


Slackチャンネルの履歴を削除します。Slackは履歴検索が便利なので、履歴を削除する用途は限定的ではあります。例えば、無料プランを利用していて、Slackのメッセージ履歴の閲覧上限を超える場合や、おひとりさまSlackの場合に活用することができます。Slack Appを作成してAPIのスコープを追加することで実現しています。

Chatwork新規メッセージ通知


当方Ubuntu Desktopで開発しておりまして、ChatworkのネイティブアプリがLinuxでは存在しないことに不満を感じていました。やはり通知を取り逃したくない場合にネイティブアプリは便利だと思います。この不満を解消するために、Chatwork用のWebhook URLエンドポイントをAPI Gatewayでプロビジョニングし、Chatworkの新規メッセージイベントをSlackに通知するサーバーレスアプリケーションを作成しました。他のサーバーレスアプリケーションと異なりAWS Chaliceを利用していまして、とても簡単にAWS環境にデプロイが可能でした。

AWSインスタンス絶対に止めるマン


AWSのインスタンスを所定の時間に必ず止めるサーバーレスアプリケーションです。EC2とRDSに対応しています。この種類のサーバーレスアプリケーションはAWS公式で紹介されている AWS Instance Scheduler など起動や停止を柔軟にスケジュール実行できる高機能なソリューションはいくつか存在します。私のニーズとしてそのような高機能なものはいらなくて、とにかく片っ端からインスタンスを停止していく機能が欲しかったので作りました。アプリケーションの思想がとにかくシンプルですので、今後Auto Scaling GroupやECS Serviceにも対応させたいと思っています。

いかがでしたでしょうか

Chatwork新規メッセージ通知 以外のサーバーレスアプリケーションは全てApacheライセンスとなっておりますので、皆さんがお好きに再利用していただくことが可能です。尚、スキマ時間を活用してコーディングしていますので、動作確認は全て結合観点で動作確認しています。AWSにデプロイした後のE2Eテストのみということになります。よろしければご活用下さい。