End-to-End Serverless Development using AWS Lambda
Amazon Web Services continues its domination as the leading cloud service provider in the market. Amazon Lambda is the part of Amazon Web Services that lets you run your code without provisioning or managing servers. Amazon Lambda is a compute service that enables you to deploy applications and back-end services that operate with zero upfront cost and require no system administration. So, if you’re an IT architect or a developer who wants to build scalable systems and deploy serverless applications with AWS Lambda, then go for this course.
This comprehensive 4-in-1 course teaches you how to make the most of AWS Lambda functions to design, build, manage, and secure scalable and cost-efficient systems and deploy serverless applications with AWS Lambda. You will begin with learning the basics of AWS Lambda such as its architecture and components. You will then learn to build serverless applications for programming languages such as Python, Java, Node.js, and C# using AWS Lambda functions. You will also learn to integrate AWS Lambda with Simple Storage Service (S3) and DynamoDB. Next, you dive deep into the advanced serverless concepts to secure, manage, and deploy your serverless applications. Finally, you will learn to design and develop cloud solutions using AWS. This course will give you a versatile range of AWS Lambda skills, which you will put to work in your own serverless applications.
Contents and Overview
This training program includes 4 complete courses, carefully chosen to give you the most comprehensive training possible.
The first course, Learning AWS Lambda, starts with covering the basics of Amazon Lambda and will then walk you through combining Lambda with other Amazon Web Services, such as Amazon API Gateway Service, Amazon DynamoDB, and so on. You will then learn how to write, run, and test Lambda functions using Node.js, Java, Python, and C#. Moreover, you will learn how to use its serverless framework to increase your development productivity.
The second course, Deep Dive into AWS Lambda, starts with an introduction to the world of serverless computing and its advantages and use cases, followed by a deep dive into AWS Lambda. You will then be introduced to the concepts of serverless computing and will get to know about the benefits. You will also learn how to build and deploy an AWS Lambda function, and how to integrate AWS Lambda with Simple Storage Service. Along the way, you will also discover how to design and deploy considerations for AWS Lambda.
In the third course, Hands-on Serverless Architecture with AWS Lambda, you will learn to build, code, and deploy your serverless applications without ever needing to configure or manage underlying servers. You’ll build, secure, and manage serverless architectures that can power the most demanding web and mobile apps. You won’t have to provision infrastructures or worry about scale.
The fourth course, Full Stack AWS Application Development, is designed to help you develop and design cloud solutions using AWS. You will gain confidence in coding and manipulating AWS-based environments (Python, Java). You will be able to use AWS SDK to interact with services and build solutions. You will also learn how to use Amazon DynamoDB data stores and to integrate applications and data (Lambda, SWF).
By the end of this course, you will know how to design and implement production-ready AWS serverless solutions. You will also be able to architect and build your own serverless applications on AWS.
Meet Your Expert(s):
We have the best work of the following esteemed author(s) to ensure that your learning journey is smooth:
Markus Klems is an expert in software development and system administration for scalable, high-availability and high-performance software systems, such as big data, mobile, web application, and Software-as-a-Service systems. In the context of his research and development work at TU Berlin and Karlsruhe Institute of Technology (KIT), he has gained in-depth knowledge and experience with complex and large-scale IT systems. He has been working with Amazon Web Services (AWS) since 2008 and is particularly excited about emerging technology trends in the realms of serverless computing and serverless microservice architectures.
Alan Rodrigues is a software technology evangelist with over 10+ years of experience in the software industry. Being abreast with the latest technologies is what he does best. One life is just not enough to intake all the information the world has to offer, but he does his bit and takes it one step at a time. These are just a few of the technologies he is well-versed in:
1. Cloud Services – Amazon Web Services. Certified in AWS as a SysOps Administrator. Well-versed in Azure Web Services as well.
2. Business Intelligence – SAP Business Objects, Informatica Powercenter.
3. Atlassian suite of products (JIRA, JIRA Agile, JIRA service desk, Confluence, Bitbucket, Hipchat)
4. Configuration, Continuous Integration – Subversion, Git, Jenkins, Atlassian Bamboo.
5. Operating Systems – Windows server 2003, 2008 & 2012, Windows 7, 10, Ubuntu, CentOS.
6. Databases – Oracle, MySQL, MongoDB, Microsoft SQL Server.
7. Change and Release Management – HPSM, HP uCMDB, Atlassian Service Desk.
David B. McDaniel has over 30 years of experience in software architecture, design, and implementation. He displays innovation in all aspects and is both a strategic and tactical consultant to all levels of organizations. His strength lies in Cloud strategy and implementation, using private, public, and hybrid solutions, and helping companies implement their API Economy presence, both internally and externally. He specializes in business process automation and optimization and system integration using open source and COTS software packages, integrating with both custom and leading enterprise applications such as SAP and Salesforce. He is an enterprise SOA and Java architect, extremely technical, and can speak to all levels, including CxO’s of any organization. Professional and engaging, he is a leader and innovator with a strong passion for his career. He helped launch several companies, including New Era of Networks (NEON), and has worked with many Fortune 500 companies.
Specialties: Cloud/Enterprise/SOA Architecture and Strategy, Integration, Mobile Solutions, Cloud/SaaS Computing, System Design. Java, Oracle, Open Source solutions.
Founder – Denver AWS Users’ Group.
Learning AWS Lambda
This video provides an overview of the entire course.
This video will help you in creating and setting up AWS account.
Sign up for AWS
Create an IAM user
Set up your local development PC/laptop with credentials
Learn about AWS usage and pricing models.
Find Lambda documentation and other resources
Learn what you can do with AWS Lambda
Calculate the cost for Lambda usage
We are going to explore the AWS Management Console.
Navigate the AWS Management Console
Pin services to your navigation bar
Switch between regions
Create a simple Lambda function from a blueprint on the AWS Management Console.
Create a Lambda function from a blueprint
Deploy the Lambda function
Test the Lambda function
Learn how to create a REST API and how to connect your API to a Lambda function.
Create a new REST API
Connect an API to a Lambda function
Test the API and invoke Lambda through it
We install the serverless framework and try out the command-line interface (CLI).
Learn about the serverless framework
Install serverless via npm
Try out the serverless CLI
Learn how to create a project with the serverless framework.
Create a service and Lambda function with the serverless CLI
View the service configuration files
Use the serverless CLI to deploy the service and view it on the AWS web dashboard
We are going to write a Lambda function handler using Node.js and learn about the event, context, and callback objects.
Log out the event and context objects on the console
View event and context data using local and remote invocations
Try out the callback function with and without errors
Learn different techniques and tools for testing and debugging your Lambda function handler code and API.
Use the serverless CLI to run your Lambda function and view logs
Invoke the API via Postman
Test Lambda functions and API from the AWS web dashboard
Learn how to build a simple web application using the serverless framework and Node.js.
We create a backend for our web application with Lambda + API Gateway
We deploy the API and Lambda functions
We test the API and Lambda functions
We want to make our web application stateful. Therefore, we need a database. We use AWS DynamoDB to build a stateful serverless backend.
Go to the AWS DynamoDB web dashboard and create a Table
Extend the Node.js Lambda function handler with DynamoDB operations
Test the Lambda function and verify that data in the DynamoDB table changes
Test the web client in your web browser
How do you deploy the frontend? In the first step, we deploy the frontend on S3. Then, we deploy the S3 bucket on CloudFront edge locations for improved performance in different geographic regions.
Host the frontend on S3
Create a CloudFront distribution for the frontend
Test performance with a website speed testing service
We will explore the AWS Toolkit for Eclipse and use it to create a boilerplate Java Lambda function.
Install the AWS Toolkit Eclipse plugin
Try out features of the AWS Toolkit Eclipse plugin
Create a Java Lambda function
We are going to deploy and run a Lambda function from Eclipse. Then we will review the function on the AWS Management Console.
Upload the Lambda function
Run the Lambda function
Review the Lambda function on the AWS Management Console
We create and test a Lambda function that can be triggered through an S3 event.
Create a Lambda function with S3 event input
Invoke the Lambda function with a dummy event
Upload a file to S3 to trigger the Lambda function
We are going to create a serverless Java project in Eclipse and deploy it to AWS. The project consists of two Lambda functions that use DynamoDB and S3 for data storage and retrieval.
Create a serverless Java project in Eclipse
Review the generated code and deploy the resources
Invoke the services via Postman
We will create our first Python Lambda function from a blueprint in the AWS Management Console.
View Python Lambda blueprints
Deploy a Python Lambda function from a blueprint
Test the deployed function
We will use the serverless framework to create a Python function from a template.
We create a Python Lambda function via the serverless CLI
We locally invoke the function
We deploy and remotely invoke the function
We will create a simple CRUD web application with Lambda, API Gateway, and DyanmoDB—using the serverless framework and Python.
First, we refactor the Lambda function from the previous video
Then we add DynamoDB, deploy, and test our service
Then we add the other CRUD operations and test again
We will explore the AWS Toolkit for Visual Studio and use it to create a boilerplate C# Lambda function.
Install the AWS Toolkit for Visual Studio
Try out the features of the AWS Toolkit
Create and deploy a .NET Core-based C# Lambda function
We will use the AWS Toolkit for Visual Studio to create a Serverless Project with C# Lambda functions.
Create a Serverless Project with .NET Core
Explore the generated source code
Deploy the project and test it
Deep Dive into AWS Lambda
This video will give you an overview about the course.
The aim of this video is to analyze the problems that occur while deploying infrastructure and applications using traditional deployment mechanisms.
Identify the pain points
Identify the cost associated with the pain area’s
Identify the maintenance overhead associated with the pain area’s
The aim of this video is to discuss how we can achieve Serverless computing.
Understand the services which can help achieve Serverless computing
Identify areas which can move to Serverless computing
Define the ways these areas can move to Serverless computing
The aim of this video is to make the user understand what the API gateway is. This video also explains the components and key features of the API gateway service.
Understand the core features of the API gateway
Look at the core components of the API gateway
See the area’s where the API gateway can be used
The aim of this video is to make the user understand what the AWS Lambda service is. This video also explains the components and key features of the AWS Lambda service.
Understand the core features of the AWS Lambda service
Look at the core components of the AWS Lambda service
See the area’s where the AWS Lambda service can be used
The aim of this video is to look at what are the benefits of AWS Lambda.
Save on Underlying infrastructure
Reduce maintenance costs
Reuse existing code
The aim of this video is to discuss the factors needed to create an AWS Lambda function.
Identify the programming language
Identify the amount of memory required
Identify the function timeout period
The aim of this video is to learn how to create your AWS Lambda function.
Decide on using any existing code
Upload an existing code
Author the code from scratch
This video talks about passing data to a Lambda function.
Decide on the data to be sent to the function
Pass in event data
Access event data from the function
The aim of this video is to teach you how to access the results for your AWS Lambda function.
See the Lambda dashboard for results
View CloudWatch metrics
View CloudWatch logs
This video talks about utilizing the authored code.
Decide on whether existing code can be used
View the existing blueprints
Decide on programming language
The aim of this vide is to learn what are the factors to consider using Simple Storage Service.
Look to store more objects
Look towards a reliable storage solution
Store different types of objects
The aim of this video is to understand the considerations to be taken care of when deploying a Node.js Lambda function.
Consider the amount of Memory
Look at the amount of timeout
Discuss about the IAM Roles assigned to the function
The aim of this video is to understand the status of the running AWS Lambda function.
Look at the monitoring section of the function
See the CloudWatch logs
See CloudWatch metrics
The aim of this video is to deploy the AWS Lambda functions in Java.
Use an Integrated Development environment
Create the program and associated package
Deploy the package from the IDE
This video will teach you to ensure that the AWS Lambda Java function runs.
Ensure the right IAM Role is assigned
Ensure the Memory is assigned
Ensure the timeout is assigned
The aim of this video is to learn when you should consider using DynamoDB.
Look when you want a fully managed NoSQL database
Expect less administrative overhead
No requirement for complex queries on the data
The aim of this video is to learn what you should consider when working with DynamoDB tables.
Understand the definition of the partition key
Discuss about the read capacity for the table
Discuss about the write capacity for the table
The aim of this video is to learn about the key considerations for a Lambda function to work with DynamoDB.
Ensure the right IAM permissions are defined
Ensure the right timeout is specified for the function
Ensure the right Memory is specified for the function
The aim of this video is to understand the key benefits of DynamoDB streams.
Register DynamoDB Item level modifications in the stream
Create all the records in real time
Access from a Lambda function
The aim of this video is to help us understand about the things to note about Versioning in AWS Lambda.
Do not change the function once the function version is published
Learn about the latest version of the function, $LATEST
Look towards creating ALIAS for Lambda functions
The aim of this video is to understand when to consider using environment variables.
Define the different types of environments – Development, Production
Define the different tiers – Database, Web
Define the different key value pairs
The aim of this video is to learn about the key metrics to be noted for Lambda functions.
Discuss about the Invocation Count
Look at the Invocation Duration
Note the Invocation Errors
The aim of this video is to learn about the key points for CloudWatch logs for AWS Lambda.
Create a separate log stream with each function
Use logging statements in code
Test the code with the logging statements
The aim of this video is to learn where you can use CloudFormation templates.
Learn about Disaster Recovery Scenarios
Look at the basic deployment of Infrastructure via Code
Build and tear down the environments
The aim of this video is to learn about what to consider when deploying code via CloudFormation.
Ensure a package is in place
Ensure the code package is tested
Make sure the package needs to be in a repository
The aim of this video is to list down what needs to be done for Automated deployment of Lambda applications.
Build a YAML file, which is an ASM file
Use the AWS CLI to package the solution
Use the AWS CLI to deploy the solution
The aim of this video is to learn about the considerations when Troubleshooting AWS Lambda.
Check the IAM permissions
Ensure the code works as expected
Ensure the right timeout and memory is specified
The aim of this video is to learn about the key practices for better AWS Lambda code.
Look at the separate business logic and handler code
Ensure minimum dependencies
Use restrictive IAM policies
Hands-on Serverless Architecture with AWS Lambda
This video will give you an overview about the course.
This video will give you an overview of serverless computing.
Choose the programming language
Define the function
Pay for the amount of time the function runs
Understand why you will need a serverless backend.
Learn about fully managed NoSQL
Learn about DynamoDB tables and indexes
Understand why you will need a serverless API gateway.
Decide on the resource
Choose the methods
Deploy the API
In this video, you will understand why you need a serverless place to host a static website.
Enable static website hosting S3
Upload your code
Test your code
Understand why you will need domain name routing.
Define the hosted zone
Choose the record types
Start routing traffic
This video will give you an overview of user authentication and authorizations.
Learn about user pools
Learn about user tokens
This video will make you understand the importance of user directory.
Create a user pool
Define pool settings
Define application settings
This video will make you understand the importance of authenticating from a program.
Choose a programming language
Register a user
Sign in with the user
This video will give you an overview of extra security required for the API gateway.
Define the API
Define an authorizer
Ensure that the authorizer is added to the API gateway
This video will make you understand how messaging between distributed components occurs.
Decide on the type of queue
Send and receive messages
This video will give you an overview about AWS Lambda and SQS.
Define the function
Add the IAM Role
Post a message to the queue
This video will give you an overview of the publish/subscribe service.
Create a topic
Subscribe to the topic
Publish to the topic
This video will give you an overview of AWS Lambda and SNS.
Define the function
Add the IAM role
Post a message to topic
This video will give you an overview about the considerations for AWS Lambda.
CloudWatch metrics for AWS Lambda
CloudWatch Logs for AWS Lambda
Review various metrics for AWS Lambda
This video will cover some considerations for AWS API gateway.
CloudWatch metrics for the API gateway
CloudWatch Logs for the API gateway
Review various metrics for the API gateway
This video will make you understand how to log different requests.
Enable server access logging
Decide on the destination bucket
View the access logs
This video will give you an overview of governance and IT auditing.
Learn about CloudTrail event history
Create a trail
View the trail in the S3 bucket
This video will make you understand the need to deploy resources.
Consider the server application model
Define your resource
Define the template file
This video will make you understand how to use the AWS SAM CLI.
Install the CLI
Create a package
Deploy the package
This video will give you an overview of provisioning resource using CloudFormation.
Define the template
Define the function
Deploy the template
This video will make you understand the need to run the gateway locally.
Use the AWS SAM
Run your gateway
Full Stack AWS Application Development
This video gives an overview of entire course.
In this we will understand what AWS is and what services offers.
Learn about some specific services
Learn how we’ll use some of the services
Get ready to program
In this video, we will understand how to create an account in AWS to access the services.
Browse to aws.amazon.com/console
Click Create Account to begin account creation process
Finish creating account
In this video, we will learn how to access the services.
Learn what the SDK is
Learn why you need the SDK
In this video, we will understand how to develop an application.
Learn about the Eclipse IDE
Download and install the Eclipse IDE
Use the Eclipse IDE to develop your application
In this video, we will learn how to interact with AWS to deploy my services.
Learn about the AWS toolkit for Eclipse
Learn what AWS toolkit will do for you
Install the AWS toolkit for Eclipse
In this video, we will learn how we create a S3 bucket to store our app files.
Log in to AWS console
Navigate to S3 console
Click Create Bucket button to start process
In this video, we will see how we get my app files into Amazon S3.
Open Eclipse, open AWS explorer
Open Amazon S3 node, double-click bucket name
Drag source files to bucket
In this video, we will learn how we enable browsing to my app files.
Select S3 bucket
In Properties tab, enable static website hosting
In Permissions tab, add Bucket policy
In this video, we will see how we run by web application.
Copy DNS name from S3 static website hosting properties page
Open new web browser or tab
Paste the DNS name into address bar press enter
In this video, we will identify the most important services in building the application backend.
Setup Cognito user pools and federated identities
Create REST API in API gateway console
In this video, we will structure two or more projects to share API data objects and API interface with Java clients.
Understand APIDO project defines interface
See that API project implements interface
See that API project depends on APIDO project and is deployed
In this video, we will learn how to control build process as a configuration.
Configure JAX-RS and JAX-RSanalyzer plugin
Configure serverless Java and Shade Maven plugins
Deploy to Lambda and API gateway
Understand how we structure Java projects to run in Lambda.
Create project that has data objects and interface
Create API project that has implementation
Build dependency and deploy API project
Understand how we deploy Lambda and API gateway configuration.
See the “mvn clean install” APIDO project
Understand the “mvn clean deploy” API project
Check AWS Lambda console to validate
In this video, we will see how we create a synchronized API in an automated way.
Configure serverless Java Maven plugin
Deploy API project(s)
Import swagger.json/master-swagger.json file into API gateway
In this video, we will see how do we test execute my Lambda without writing a client.
In API gateway console, choose resource/method
Click test icon, enter parameters, and click Test button
Check CloudWatch logs for execution log
In this video, we will see how DynamoDB relates to SQL databases.
Understand that DynamoDB is key/value oriented
See that the DynamoDB has flexible, row-level schema
Understand that DynamoDB is serverless
In this video, we will see how we store document or key/value-oriented data.
Create a DynamoDB table to store the data
Set the capacity, keys, and indices on the table
Update your code to store and retrieve data from DynamoDB