terraform-aws-slackbot
aws-blog.de-projects
terraform-aws-slackbot | aws-blog.de-projects | |
---|---|---|
6 | 21 | |
76 | 58 | |
- | - | |
5.5 | 6.3 | |
5 days ago | 24 days ago | |
Python | Python | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
terraform-aws-slackbot
-
Serverless Slackbot Module
The slackbot terraform module stands up a REST API that integrates directly with EXPRESS Step Functions to verify the signature of inbound requests from Slack and then publish them on EventBridge for async processing.
- Just released a new version of my Terraform module for deploying a serverless Slack App on AWS
-
Slack integration with AWS
I maintain a terraform module that listens for HTTP events from Slack and sends them to Lambda where the signature is verified and then the payload is published to EventBridge for async processing. I have found a lot if success triggering step functions on events (Slack events, slash commands, interactive components, etc)
-
Setting up lots of AWS alerts - make lots of SNS-SQS-Lambda chains?
I have a terraform module for setting up your own serverless internal Slack app with API Gateway/Lambda/SNS that I use for a couple projects. I'm actually in the process of converting it to use EventBridge instead of SNS, but I use it at work for alerting and acting on /slash-comands and Slack events.
aws-blog.de-projects
-
Adding Cognito Authentication to our Serverless Dash App
With this theory out of the way, let‘s see how we can implement it. I have once again created a repository with a SAM-based app. The app deploys the required Cognito user pool and app client for authentication and grants the Frontend Lambda permission to describe the User Pool and retrieve some secrets at runtime so that they don‘t have to be hardcoded. Almost all the rest happens in the Lambda function.
-
Build a Serverless S3 Explorer with Dash
You can deploy the solution to your own account, as explained in the Github repository. It's basically a combination of sam build and sam deploy --guided because we need SAM to create an ECR repository for the docker image. After the deployment, you need to add credentials to the Parameter Store parameter; otherwise, you won't be able to access the webapp. I didn't include default credentials on purpose.
-
Adding Basic Authentication to the Serverless Dash App
The code for this setup is available on Github again. I'm not going to walk through all of the authorizer code here, feel free to check out the full implementation, it should be relatively easy to read.
-
Deploying a Serverless Dash App with AWS SAM and Lambda
The build_app function creates a Dash app that displays some text, an image, and some dynamic functionality. I've omitted some of the code for brevity, you can find the full code on Github. I wrapped the instantiation in a function that allows me to pass additional arguments to the apps' constructor.
-
Teaching boto3 to store floats and datetime objects in DynamoDB
In order to fix these shortcomings, we can extend boto3 to teach it how to deal with more data types than it can on its own. The code, including some tests for it is available on GitHub, and you can jump straight into that if you're impatient, but we're also going to walk through it and talk about some background info that may interest you.
-
Advanced Credential Rotation for IAM Users with a Grace Period
This works well for situations where only one set of credentials can be active at any point in time. There's only one problem here. There is no built-in hook in the lifecycle to decommission or deactivate the old credentials after a grace period, so we have to build our own. Fortunately, the architecture for that isn't too complicated. We extend the four-step lifecycle with a fifth deletePreviousSecret step implemented through custom logic. A self-contained example implementation in Terraform and Python is available here. Let's go through each step in the sequence and see what's happening.
-
Push-Down-Predicates in Parquet and how to use them to reduce IOPS while reading from S3
By playing around with the two different implementations, I also learned a few more performance details that surprised me. Let's talk a bit about my experiment setup. The complete code is also available on GitHub if you want to follow along.
-
The beating heart of SQS - of Heartbeats and Watchdogs
Pictures are cheap. Let's look at some code that you can also find on GitHub. You need the AWS SDK for Python and a standard SQS queue to run this yourself. We begin with code that can send a few dummy messages to our SQS queue.
-
Introduction to asynchronous interactions with the AWS API in Python
This lambda function sleeps for a random number of seconds between one and ten. It fails in about 15% of all invocations, simulating a broken configuration. In all other cases, it returns the message that processing was successful. Let's look at the implementation now. You can find the complete code on Github if you're interested.
-
10 years and one month: speed up website hosting on AWS in four steps
aws-blog.de
What are some alternatives?
streamalert - StreamAlert is a serverless, realtime data analysis framework which empowers you to ingest, analyze, and alert on data from any environment, using datasources and alerting logic you define.
tfquery - tfquery: Run SQL queries on your Terraform infrastructure. Query resources and analyze its configuration using a SQL-powered framework.
business_closures_de_pipeline - Data Engineering pipeline hosted entirely in the AWS ecosystem utilizing DocumentDB as the database
cdk-magento-webshop - This is a CDK app to provision the required resources to run a flexible, scalable, and cost-effective Magento webshop on top of AWS.
checkov - Prevent cloud misconfigurations and find vulnerabilities during build-time in infrastructure as code, container images and open source packages with Checkov by Bridgecrew.
Hugo - The world’s fastest framework for building websites.
terraform-aws-notify-slack - Terraform module to create AWS resources for sending notifications to Slack 🇺🇦
aws-sdk-go - AWS SDK for the Go programming language.
devops-exercises - Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions
boto3 - AWS SDK for Python