Skip to main content

A Serverless Application on AWS

 

By Morgan Lucas, From Adrian Cantrill’s More Than Certified / GitHub. Find the Notion Page HERE.

Pictured: Someone who would get use out of the app.

Technologies used: AWS, Lambda, Step Functions, API Gateway, S3, SNS & SES.

What Is This?:

A small app for pets to both you for cuddles that will send an alert to a phone and an email address. Both points of contact must be opted into first.

Stage 1

  • I register 4 objects - Two email addresses (sending messages, receiving messages) and 2 phone numbers (one to receive SMS [text messages], and an origination number.

Stage 2

  • I used CloudFormation (again, our old friend) to create an IAM role that email_reminder_lambda uses to interact with other AWS services. Really beats searching through the policies!
  • In the Lambda console, I create a function that uses Python 3.9 rundown and use the LambdaRole created via CloudFormation. There are multiple entries called some variation of LambdaRole, so look for the one with SES/SNS and CloudWatch roles.
  • The function in question needs the email address added, so it goes from

FROM_EMAIL_ADDRESS = 'REPLACE_ME

To

FROM_EMAIL_ADDRESS = 'morganlucas@runtcpip.com

Stage 3

  • Making and configuring the state machine through a CloudFormation stack yet again. It has the ability to invoke the email lambda function to send emails, logging permissions and SNS sending abilities.

  • The State machine will be written in Amazon States Language, which looks like JSON to me.

  • Here is the workflow and my interpretation; The actual workthrough is in the instructions.



Start: The function exists

Timer I’m not sure of yet

ChoiceState is obvious with 4 choices - Email only SMS only, Both, or neither. When one of the message options are chosen, it moves on to pushing the message and ends. NoChoice ends the function.

  • The ARN created in Step 2 is put into EMAIL_LAMBDA_ARN
  • Logging is enabled for all events
  • The State Machine is created and given an ARN.

Stage 4

  • This creates the API gateway and Lambda function to act as the front end for the application.
  • I make yet another function in the Lambda console using Python 3.9 as the runtime that supports the API Gateway, which is created now, alongside the API Gateway, API, and Method.
  • The API has the Regional Endpoint and is deployed in the current region.
  • For more control over the information, I don’t click Configure as proxy resource
  • Enable API Gateway CORS eases restrictions on things calling our APIs with different DNS names.
  • The resource (petcuddleotron) is given the POST method to work with api_lambda.
  • Lambda Proxy Integration is checked.
  • The API is deployed and I get an invoke URL.

Stage 5

  • Creating an S3 bucket to hold the visuals of the webpage that allows public access.
  • Static hosting is placed upon the bucket , and I note how straightforward it is on AWS. I’m given a bucket website endpoint.
  • The files are uploaded to the Objects portion of the bucket. Note that I had to click and drag the files for the webpage to appear; Uploading the entire folder did not work, nor did using the upload dialog.
  • Testing the app with information; I use my receiving email set up in Step 1 (It’s not this);


My dog is very enthusiastic about chicken.

  • In Step Functions, under the petcuddleotron app and Executions, I can see it running!

It did fail; It doesn’t seem to like my email address, despite it being the confirmed one. Every failure involves my email being involved.

When I hit SMS only, it does succeed, but I don’t receive the message until I put the 1 in front of my phone number; I had forgotten.



And now my dog can bother me for attention (If she knew how to use technology);

 



Comments

Popular posts from this blog

Making KPI Dashboards with PowerBI

 While this is the free tier, I cannot share or collaborate with others, nor can I publish content to other people's workspaces, but they will not stop me from screenshooting and recording these self-taught adventures,so! I'm doing this because I idly searched "Mattel careers" and "Information Technology", and seeing a bulletpoint saying the following: Analytical and reporting skills such as creating dashboards and establishing KPIs such as experience with PowerBI, Cognos, Tableau, and Google Data Lake/AWS is preferred And thought "Well, I've used Tableau, and I've heard about PowerBI,  even if its in-demandness is questionable , so how similar is it? And can I write about it?"  First, PowerBI (PIB) does have a downloadable, local version, but apparently Windows-only. I could download the .exe but I couldn't run it / drag it to applications on my MacBook.  Not a problem, we'll use the online SaaS version, and a dataset found here, ...

A 2-week Trial of T-Mobile Home Internet

     The Xfinity app showed usage of the past 3 months: We used less than 40% each month, for about $80 USD a month.   No thanks! That cuts into the movie budget! Before we save some money (about $15/mo), let's test how T-Mobile Internet unlimited data works for 2 weeks.    There are 15 devices for this test; Smart TVs: 4 Laptops: 4 Printer: 1 Smart Home Speakers: 3 Game Consoles: 1 Phones: 1 (There are other phones in the home but they stick with data) Other: 1 Total : 15  I made tables for 3 entries a day across 3 days to test the Xfinity service we have. Here's one;   Xfinity is pretty speedy - Download times are between 227 - 236 Mbps, Latency between 24.5 - 25.5, Jitter between 5 - 6.68, and 0 packet loss.  Let's quickly define the terms in the table;    Date/Time - The date and time of the data gathered. Download (Mpbs) - How fast your network gets data. Upload (Mbps) - How fast your network uploads data. Latency ...

Recon and SSID - Mapping With VisiWave Site Survey

My laptop is refurbished. I've written about how there are a few ... quirks. Being a technology professional, I felt okay with adopting an older machine, knowing I had the skill to fix moderate issues. From dying drivers to monitor massacres, I've ID'd, solved, and documented a lot of issues.  The newest one was my Wi-Fi adapter dropping the connection to a specific extender. While troubleshooting, I was curious about doing recon of WiFi networks and broadcasting devices anyway. That issue? A power setting. It was so determined to save power, it would disconnect. The extender is also flirting with the older end of 6 years old.  The battery needs to be replaced, but that's new to me. As a Windows laptop, there are a plethora of options to pick. How do you decide which one is safest?  I am suddenly concerned about this despite having 3 unofficial, 15$ Macbook Air chargers from eBay, and no explosions. But let's move onto the Site Survey - Where can I find the stronges...