5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ConnpassイベントをSlack通知するツールを作ってTerraform化してみた

Last updated at Posted at 2020-03-07

Connpassの勉強会情報をSlack通知するツール(python)を作ってterraformでデプロイ自動化してみました。
ものはこちら → https://github.com/ishim0226/ConnpassToSlack

いくつかパラメータセットしてapplyするだけなので、数分でデプロイできます。

作った背景

普段、インフラエンジニアとして働いておりプログラミングすることがあまりないので、勉強してみたいと思ったのがきっかけです。
どうせならインフラ部分のスキルを掛け合わせたいと思い、クラウド上でインフラコード化を前提に考えた結果、このようなものを作ってみました。
おかしな箇所ありましたら、コメントいただけると幸いです。

ツールの特徴

ざっくり特徴をあげると、以下のようなものです。

  • 新規追加されたイベントまたは、更新があったイベントのみ通知します。(通知済みイベントをDBで管理してます)
  • 以下で通知するイベントをフィルターできます。
    • キーワード(複数のOR指定が可能、※ANDや除外はできません)
    • 開催場所(複数のOR指定が可能、※ANDや除外はできません)
    • 一度、通知したイベントに更新があったときの通知有無(デフォルトは「通知しない」)
  • 数分でデプロイできます。
  • 低コストです。AWS利用料がかかりますが、おそらく数百円/月もいかないくらいです。

処理の概要

CloudwatchEventsでLambdaを定期実行し、取得したEventをDynamoDBへ流します。
その後、DynamoDBStreamにより実行されたLambdaにてSlack WebhookURLを叩き、Slackへ通知します。
※Slack WebhookURLの取得方法は SlackのWebhook URL取得手順 が参照になります。

アーキテクチャ図

architecture.jpg

実行までの流れ

※詳細は Readme を参照ください。

  1. Repository をCloneします。
  2. パラメータ(terraform/variables.tf)を編集します。
    ここでフィルター条件や実行時間、Slack通知先などを設定します。
  3. terraform実行してデプロイ完了

実行時間を迎えると、以下のようなSlack通知が飛びます。
image.png

参考URL

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?