
Converting Blog Diagrams to Mermaid for AI Readability
How we converted 24 architectural diagrams from images to Mermaid format using Claude and built a streamlined conversion tool
When I stumble upon an unsolved or undocumented problem and solve it, I like to document it here.
How we converted 24 architectural diagrams from images to Mermaid format using Claude and built a streamlined conversion tool
Learn how to build a Lambda function that automatically downloads survey response data from Qualtrics using their export API
A deep dive into resolving Docker BuildKit attestation manifest incompatibilities that prevent ECS deployments, including investigation steps and solutions.
Getting psycopg2 to work in AWS Lambda can be frustrating. This post shows you two reliable solutions - using pre-compiled binaries for simplicity, and building from source with Docker for production workloads.
How we replaced vector search with AI-powered semantic search using Claude via AWS Bedrock
A comprehensive guide to deploying multiple environments in a single AWS account using CDK, featuring sophisticated deployment strategies, GitHub Actions automation, and real-world architectural patterns
Implementing a generator for llms.txt files to help AI models better understand and reference blog content
A deep dive into securely managing user-specific image uploads to S3 using presigned URLs and authorizing access for viewing with AWS Cognito.
Create an MCP server that you can use to access your AWS CloudWatch Logs and CloudTrail events for easier troubleshooting and monitoring
Expanding on our CloudFront log analysis with new Athena queries to differentiate bots vs humans, analyze external referrers, and get detailed bot traffic insights.
Exploring the architecture and interesting features of a serverless survey application built with AWS CDK, React, DynamoDB, and Lambda@Edge
A detailed guide on sending emails with Microsoft Graph from a Lambda function
A detailed guide on setting up CloudFront logging with Athena to analyze blog traffic patterns and user behavior using CDK
A detailed guide on how we implemented semantic search using Pinecone vector database and OpenAI embeddings
A detailed guide on implementing secure API Gateway endpoints using Lambda@Edge for request verification and API key management
A detailed walkthrough of creating a dynamic wave animation using SVG, React, and Tailwind CSS
A step-by-step guide on how to add RSS, Atom, and JSON feeds to a Next.js static blog using the Feed package
How to set up GitHub Actions workflows that intelligently handle content vs code changes, with automatic PR creation and selective deployments
In this demo we will see how to deploy a Cognito protected API and test it with Postman using OAuth 2.0 for authentication and login
Updated NextJS App deployed to App Runner with SSR and GitHub Actions
This demo will explain how to deploy a multi-region pipeline with AWS CDK by passing parameters between stacks.
NextJS App deployed to App Runner with GitHub Actions
In this demo we will see how to deploy an NVIDIA NIM to EC2 with Docker to do your own inference
In this demo we will see how to deploy an application on AWS that will capture insights from GitHub and store them in S3 to be easily queried with Amazon Athena
Deploy a NextJS Application to AWS App Runner using CDK
In this demo we will see how to deploy and test a projen based project with cdk-nag
A CDK stack that will deploy a will create an ECS hosted application for streaming audio with gRPC to Whisper and getting the transcription output
This simple bash script can be used to get the public and private IP addresses of a Fargate Cluster
In this demo we will see how to deploy an Amazon Bedrock Knowledge Base with an OpenSearch Vector Index using CDK
A simple React application and related infrastructure that will consume Amazon Chime SDK call analytics events
This demo will show you how to deploy and use a gRPC server and client to stream audio and use Amazon Transcribe to analyze the audio
A CDK Pipeline example that will deploy a NextJS App on ECS
This demo will go through the steps to process a file with ffmpeg and stream the contents to KVS using Node.js
Feature flags can be used to modify the deployment characteristics of a CDK deployment. These feature flags can be enabled in projen by modifying the cdk.json file.
In this demo we will see how to deploy a custom built Fargate container using CodeBuild
How to build a private Fargate task and connect to it with an AWS Lambda function using AWS CDK.
When uploading files and directories during a CDK bucket deployment, `exclude` can be used. This samples shows how to use that feature.
This Cloudformation template will deploy a simple EC2 instance to be used as a development server. Several common packages are included in the deployment and keys can be installed during deployment.
CDK Constructs are a great way to create reusable and flexible code for yourself and others. projen makes it easy to create and publish the project. CDK Custom Resources are a way to do complex deployments and deploy AWS resources not native to CDK within a CDK. In this example, an AWS Lambda will be used as a Custom Resource from a published package.
This article will show you how to add custom GitHub Actions workflows with Projen
This demo will show how to build and deploy a Fargate WebSocket server. This application will automatically scale and use TLS to secure the connection.
In this demo, we will be building a React based WebSocket reader that uses Amazon API Gateway to read data from a Kinesis Data Stream
This CDK will deploy a an Asterisk server to AWS Fargate from multiple CPU architectures
In order to deploy a Certificate with a CloudFront Distribution, a multi-stack CDK must be used to deploy the Certificate in us-east-1 and the SPA in a different Region. This CDK deployment will show how to do that.
This demo will use CDK to deploy a Minecraft server on AWS Fargate using Route 53 as the trigger
This demo will describe how to create a CDK with conditional resource deployment and how to use Environment Variables with that conditional deployment
An update to the previous CDK Construct Custom Resource post. This time we will be using Typescript instead of JavaScript for the Lambda function.
This article will show you how to deploy a Python Lambda function with additional dependencies using CDK
How to build a private RDS database and connect to it with an AWS Lambda function using AWS CDK.
If you need to modify the keys of a Python dictionary, a recursive function can be a useful way to work through the entire dictionary. This [gist](https://gist.github.com/schuettc/3875da7458e3573646599e70b7b17a61) is an example of how to do that.
A twist on the previous [Recursively Modify Python Dictionary](/content/blog/recursively-modify-python-dictionary.md), this function will modify a Python dictionary to convert snake_case keys to PascalCase keys.
[NextJS](https://nextjs.org/learn/foundations/about-nextjs/what-is-nextjs) is a powerful React framework that we can use to deploy directly from GitHub to [AWS Amplify](https://aws.amazon.com/amplify/). We will also be using [CodeSandbox](https://codesandbox.io/docs/overview) to work with the code before deploying.
Creating an [AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html) (Amazon Machine Image) can be done via the AWS Console. It can also be created via AWS CLI or SDKs. This CDK Construct will assist with the creation of an AMI as part of a [CDK](https://aws.amazon.com/cdk/) deployment.
If you need to modify the keys of a Python dictionary, a recursive function can be a useful way to work through the entire dictionary. This [gist](https://gist.github.com/schuettc/3875da7458e3573646599e70b7b17a61) is an example of how to do that.
To add on to the previous [article](https://subaud.io/importing-an-amazon-lex-bot-with-cdk/) that described how to import an Amazon Lex Bot with CDK, I have created a [CDK Construct](https://constructs.dev/packages/cdk-lex-zip-import/v/0.0.4?lang=typescript) that you can import and use in your own CDK projects.
Amazon Lex Bots are a way to use natural language conversational interfaces that can be used through a variety of integrations such as Facebook and Slack. A Lex Bot can be built and deployed through the AWS console. However, it can also be deployed by CDK, Cloudformation, or SDK. In this post, I will explain how to import an existing Lex Bot using CDK and SDK.
This example will build a CDK Pipeline that will build a backend and frontend and then pass API Gateway URL information from the backend to the frontend. This information can be used to make calls to the backend without having to manually pass the URL information. When connected to a Github repo, the CDK pipeline will automatically trigger and rebuild so changes to any portion of the app through GitHub.
Cloud-init is a powerful way of configuring an EC2 instance. CDK can create an EC2 instance and use cloud-init to pass dynamically created variables to this EC2 instance which can be used to configure the instance. When combined, these tools can be used to create fully configured and deployed dynamic EC2 instances.
CDK Constructs are a great way to create reusable and flexible code for yourself and others. projen makes it easy to create and publish the project. CDK Custom Resources are a way to do complex deployments and deploy AWS resources not native to CDK within a CDK. In this example, an AWS Lambda will be used as a Custom Resource from a published package.
Managing multiple AWS accounts with AWS CLI can be a challenge. Here is how I set up my macOS terminal. This configuration will set up a terminal shell that will show your AWS account and git information in the prompt. The example provided includes access key and SSO with MFA logins.
When building ARM64 resources with CDK Pipelines, it is necessary to have them built using an ARM64 Image with CodeBuild.
Simple bash script to download and compile [SIPp](https://github.com/SIPp/sipp.git) on an Amazon Linux 2 instance. This can take a while to build because of the cmake dependency.
This simple script will look through a bucket to find all objects that match a `LastModified` date and delete. This can be adjusted to delete objects before, after, or matching the date specified. Use at your own risk.
Previously, we looked at how to use CDK Pipelines to create a [full stack deployment](https://subaud.io/creating-a-full-stack-app-with-cdk-pipeline/). This deployment used multiple Cloudformation stacks to create a front-end and back-end. This example will show a similar process, but uses a new technique that will allow us to use a single stack to deploy both front-end and back-end while still maintaining the ability to work on the front-end locally.