Building a Serverless Email Document Extraction Solution with AWS Textract: Part 2 - Landing Inbound Emails

In the first post of this series, we looked at a solution to allow us to define a serverless, email-based workflow to extract relevant information from auto maintenance invoices. Even in this age of accelerated digital transformation, there are still many scenarios in business and life where we receive data that is not in a machine-friendly format; we are building this solution to address these kinds of situations. We use the Serverless Framework to build the core of this solution.

Building a Serverless Email Document Extraction Solution with AWS Textract: Part 1 - Overview

Earlier this year, I tried to consolidate all of my automotive maintenance histories into a database-backed system that was the lowest-friction means possible for me to keep up with my records. At the time, I settled on building out a solution using Airtable. I was able to set up a solution very quickly. I am honestly quite happy with the outcome, except that I am still manually keying in records to either the Airtable app or on their site based on the paper records that my auto shop gives me on every visit.

AWS Certification Journey: 11 Certifications

11 AWS certifications. What does it mean to have 11 AWS certifications? In the basest interpretation, it means that I have passed (at least) 11 certification exams. Other than that, it means a lot of things, many of which I would have never expected. It means that: many people on LinkedIn now believe that I am their personal learning coach, there to provide them with personalized learning plans and advice; in a similar vein, I have also received quite a few questions/requests from people who now believe me to be their personal AWS Q&A service.

Thoughts on the AWS ML (Beta) Exam

I was able to squeeze in the beta AWS ML exam the week before Christmas. Given that it was several weeks ago, some of the other resources on Medium may be more informative, but I’ll throw my two cents out here for anyone who may be interested. Generally speaking, know about different types of machine learning models (particularly those supported by SageMaker) and in what sorts of situations they’re applicable. These include:

Working With Azure AD in AWS and Moving from Azure SQL to RDS SQL Server

For the last week, I worked on a pretty intense migration of a fairly sizable Azure SQL instance that moved into AWS’ RDS service (running SQL Server). It was an intense project due to the timeline and size of the database. Of course, this involved access to both services, using both web consoles, CLI and native database interfaces. The client was controlling access to AWS and Azure using Azure AD, so I had to figure out federated access to the AWS API/CLI (since we built out their new environment using Terraform).

One-Liners - Get AWS AZ Counts

OK, so not truly a one-liner, but a nice quick-n-dirty way to get a count of all active AZs for each region for your AWS account. echo -e "$(tput bold)Region | # AZs$(tput sgr0)" for region in $(aws ec2 describe-regions | jq -r '.Regions[].RegionName'); do num_azs=$(aws ec2 describe-availability-zones --region ${region} | jq -r '.AvailabilityZones | length') printf '%-15s | %5s\n' ${region} ${num_azs} done This requires jq and the AWS CLI to be installed.

Getting the AWS Big Data Certification

“Why am I so nervous? I haven’t felt like this since… I took the first one.” After five AWS exams (particularly the two pro exams) and a handful of other certification exams, I didn’t really expect to be nervous taking this exam. Oddly enough, this is exactly how I felt going in, during, and in that inexorable “moment” of time between clicking the Submit Exam button and actually seeing the result on the page.

The Path to All Five AWS Certifications

TL;DR This is not a brain dump or a “how-to-pass exam X” post. There are plenty of those elsewhere already. A little over a year ago (last August, to be exact), I unknowingly forked my career path. You may be asking how is that I came to cause such a major divergence while yet remaining unaware as to the fact that I had done so. The answer is both very simple and quite complicated: I got my first AWS certification.

Hugo: Here We Go!

Since I moved back in April, my server has been offline, and with it my old Wordpress-based blog. With my new home, there isn’t really anywhere convenient to run a noisy 1U server blade. This got me thinking about whether or not the server was really essential – of course I still wanted to host my blog somewhere, as well as some other services that I really like having hosted in-house: my own personal Seafile server and email among them.

Allows the start/stop of EC2 instances using an AWS IoT button The project provides code for a Lambda function (written using Node.js) that allows a properly configured AWS IoT button to start and stop properly tagged EC2 instances. Grunt is used to deploy packaged code to Lambda (check out the awesome grunt-aws-lambda project). Initial development of this project was funded by Brent Ozar of Brent Ozar Unlimited.