[PYTHON] I made a tool to notify Slack of Connpass events and made it Terraform

I made a tool (python) to notify Slack of study session information of Connpass and tried to automate deployment with terraform. Click here for things → https://github.com/ishim0226/ConnpassToSlack

All you have to do is set some parameters and apply, so you can deploy in minutes.

Background made

I usually work as an infrastructure engineer and don't do much programming, so I wanted to study. Anyway, I wanted to multiply the skills of the infrastructure part, and as a result of thinking on the premise of infrastructure coding on the cloud, I made something like this. If you find something strange, I would appreciate it if you could comment.

Tool features

Roughly speaking, the features are as follows.

--Notify only newly added events or updated events. (Notified events are managed in DB) --You can filter the events notified below. --Keyword (Multiple ORs can be specified, * AND and exclusion are not possible) --Venue (Multiple ORs can be specified, * AND and exclusion are not possible) --Presence / absence of notification when there is an update to the event once notified (default is "do not notify") --Deploy in minutes. --Low cost. There is an AWS usage fee, but it probably costs less than a few hundred yen / month.

Outline of processing

Run Lambda periodically with Cloudwatch Events and send the acquired Events to DynamoDB. After that, hit the Slack Webhook URL in Lambda executed by DynamoDB Stream to notify Slack.

Architecture diagram

architecture.jpg

Flow to execution

  1. Clone the Repository (https://github.com/ishim0226/ConnpassToSlack).
  2. Edit the parameters (terraform / variables.tf).
    Here you can set filter conditions, execution time, Slack notification destination, etc.
  3. Run terraform to complete deployment

When the execution time is reached, the following Slack notification will be sent. image.png

Reference URL

-Build Lambda (Cron startup) with Terraform -Using DynamoDB with Python -Run Aws Lambda locally -Slack Webhook URL acquisition procedure

Recommended Posts

I made a tool to notify Slack of Connpass events and made it Terraform
I made a tool that makes it a little easier to create and install a public key.
I tried to notify slack of Redmine update
I made a tool to compile Hy natively
I made a tool to get new articles
I made a tool to estimate the execution time of cron (+ PyPI debut)
I made a tool to automatically back up the metadata of the Salesforce organization
I tried to notify the update of "Become a novelist" using "IFTTT" and "Become a novelist API"
I made a tool to create a word cloud from wikipedia
I made a function to check the model of DCGAN
[Titan Craft] I made a tool to summon a giant to Minecraft
I made a toolsver that spits out OS, Python, modules and tool versions to Markdown
I made a tool to get the answer links of OpenAI Gym all at once
I made a server with Python socket and ssl and tried to access it from a browser
I made a function to crop the image of python openCV, so please use it.
I made a tool that makes it convenient to set parameters for machine learning models.
I don't like to be frustrated with the release of Pokemon Go, so I made a script to detect the release and tweet it
I want to create a pipfile and reflect it in docker
I made a slack bot that notifies me of the temperature
I made a chatbot with Tensor2Tensor and this time it worked
I made a POST script to create an issue on Github and register it in the Project
I made a tool to automatically browse multiple sites with Selenium (Python)
I made a CLI tool to convert images in each directory to PDF
I made a kind of simple image processing tool in Go language.
I made a program to notify you by LINE when switches arrive
I made a network to convert black and white images to color images (pix2pix)
I made a script to display emoji
Allow Slack to notify you of the end of a time-consuming program process
I made a program to input what I ate and display calories and sugar
I made a tool to convert Jupyter py to ipynb with VS Code
I made a browser automatic stamping tool.
I made a program to check the size of a file in Python
I made a function to see the movement of a two-dimensional array (Python)
I made a system that automatically decides whether to run tomorrow with Python and adds it to Google Calendar.
I tried to notify the update of "Hamelin" using "Beautiful Soup" and "IFTTT"
I made a tool to easily display data as a graph by GUI operation.
I want to write an element to a file with numpy and check it.
I made an appdo command to execute a command in the context of the app
I made an image classification model and tried to move it on mobile
I made a tool to generate Markdown from the exported Scrapbox JSON file
I made a script to record the active window using win32gui of Python
I made a github action that notifies Slack of the visual regression test
I set up TensowFlow and was addicted to it, so make a note
I made a useful tool for Digital Ocean
I made a router config collection tool Config Collecor
I made a tool in Python that right-clicks an Excel file and divides it into files for each sheet.
I made a list site of Kindle Prime Reading using Scrapy and GitHub Actions
I made a program to convert images into ASCII art with Python and OpenCV
I made a Docker Image that reads RSS and automatically tweets regularly and released it.
A story of trial and error trying to create a dynamic user group in Slack
[Introduction to system trading] I drew a Stochastic Oscillator with python and played with it ♬
I made a web application that maps IT event information with Vue and Flask
A Python beginner made a chat bot, so I tried to summarize how to make it.
Image processing with Python (I tried binarizing it into a mosaic art of 0 and 1)
Add a function to tell the weather of today to slack bot (made by python)
I made a library to separate Japanese sentences nicely
I made a cleaning tool for Google Container Registry
I made a threshold change box of Pepper's Dialog
I made a script to put a snippet in README.md
I made a Python module to translate comment outs
I made a code to convert illustration2vec to keras model