This article is the second part of a series that explains how to build an AWS application that authenticates requests to its Lambda services by using an Application Load Balancer (ALB). The goal of this application is to authenticate Lambda requests with an HTTPS ALB instead of API Gateway using an Infrastructure as Code (IaC) approach. You can follow along with the code in this tutorial by cloning this repository.
In a previous article, we registered a domain name through Route53, created a valid TLS/SSL certificate for that domain, and built an OpenID Connect-compliant authorization client (Google’s OAuth). …
Recently, a serverless pattern was introduced that leverages Application Load Balancers (ALB) in front of Lambda functions instead of API Gateway (API GW).
In a two-part series, I will explain how to configure an HTTPS ALB that authenticates through an OpenID Connect (OIDC) compliant identity provider (IdP) using CloudFormation. For this tutorial, we will use Google as our identity provider, but keep in mind that any OIDC-compliant IdP will work.
This article will present the steps to take before building an Application Load Balancer that will authenticate requests via OpenID Connect.
In a followup article, I will provide a sample…
In this article, I’ll discuss how adding a few lines of code to your
serverless.yml can help you deploy your TypeScript-based serverless stack to AWS with one command.
If you’re reading this because explicitly defining your data types is what floats your boat, I’m right there with you. Go ahead and skip right to the tutorial.
However, if you haven’t used TypeScript or are unsure about whether it’s right for you, I found this article to be pretty objective and reasonable when discussing its pros and cons. In the next section, I’ll highlight some of the challenges…
Useful Node/AWS recipes you can use again and again.
As I work on AWS cloud-native applications, there are certain NodeJS “recipes” I find myself leaning on time and time again. It occurred to me the other day that I should record these somewhere for my own reference, but then I thought, why be greedy?? I hope some of these recipes will provide a nice reference for anyone who spends a lot of time developing AWS apps with NodeJS/TypeScript.
These recipes were built with the Lambda runtime environment in mind, which is why they are written in
commonjs instead of
Marshal your own data when the higher level APIs will not.
If you’re familiar with DynamoDB, you know that transforming (or as AWS calls it, “marshaling”) your data into DynamoDB ‘s consumable form can be cumbersome.
In one of my
python stacks, I needed to use DynamoDB transactional writes. While Node’s
aws-sdk has a higher level implementation of transactional data operations through the DocumentClient, Python’s
boto3 does not.
As someone who has spent a lot of time working with relational data, I can empathize with developers who struggle with NoSQL database technologies. However, the more that I’ve worked with DynamoDB over the last several years, the more I’ve come to love the freedom and flexibility it provides.
However, I totally understand the flexibility of non-relational data can make data modeling a little intimidating. This article will help explain the process of taking structure-less, relational data and storing it in one DynamoDB table.
There are a few very well-written articles on the internet that explain the pros and cons…