
Master serverless programming with AWS Lambda by building, testing, and deploying functions using SAM CLI, API gateway, DynamoDB, and YAML templates.
Maximize learning for Java developers through hands-on labs and assignments, while installing AWS and SAM CLI, testing REST APIs with Postman and API Gateway, and embracing serverless lambda approach.
Clone the course repository on GitHub (github dot com slash Bharath Thippireddy) to access all completed projects, then run and reference them to explore and experiment.
Complete the section assignments to evaluate your learning and submit them for review via lecture resources. Download the pdf with code and configuration as a helpful reference, not for copying.
Harness cloud components for business solutions with serverless programming, using AWS Lambda for custom code and nano services, paying only for what you use.
Explore nano services, the next generation of micro services, with the do one thing principle, low cost versus usefulness, and asynchronous event driven execution using the AWS serverless repository.
Explore FaaS with AWS lambda, where each lambda is a nano service triggered by events from S3, SNS, or DynamoDB, with runtime provisioned and billed by execution time.
Explore how AWS Lambda enables event-driven, serverless components to power restful backends, data processing, chatbots, and infrastructure management with scalable, on-demand Lambda instances.
Create your first AWS Lambda from the console, author from scratch in node js 12, test with events, and view CloudWatch logs and IAM permissions.
Learn how to invoke AWS Lambda functions via console test, CLI, and SDK, and through event sources like S3, API Gateway, DynamoDB, and SNS in synchronous, asynchronous, and polling modes.
Set up an AWS account by entering your email, creating a password, and choosing a personal account; then activate access and use only free tier services for a year.
Learn how AWS SAM simplifies building and deploying serverless Java applications by configuring Lambda functions in a concise template, then build and deploy with sam build and sam deploy.
Create an IAM user named lambda user in the aws console, enable console and programmatic access, attach administrator permissions, and generate access keys for the sam cli.
Install the AWS CLI version 2 and the AWS SAM CLI, verify their versions, and learn to build and deploy serverless projects with SAM in AWS Lambda.
Configure the AWS CLI by entering your access key id and secret access key with aws configure. Set the default region to us-east-1 to run AWS and SAM commands.
Install the Java JDK (8 or 11), set up an IDE (Eclipse or IntelliJ), and install Maven with proper environment variables to build and deploy Java code to AWS Lambda.
Install Visual Studio Code, the open source IDE from Microsoft, to edit YAML files (YAML extends JSON) on Windows, Mac, and Linux; you can use any editor, including Sublime Text.
Learn YAML syntax for configuring Docker compose, Kubernetes, and Ansible, with practical guidance on creating and validating YAML files in Visual Studio Code.
Learn to build and deploy a serverless AWS Lambda app for Java developers using sam cli, from creating a maven project and template.yaml to testing and deleting the stack.
Master creating a serverless project with the SAM CLI by choosing AWS Quickstart templates, selecting the hello world template, and configuring the runtime in the updated SAM init flow.
Create a java lambda project using the aws sam cli, selecting the hello world template with maven and java eleven. Explore the project structure, template.yaml, and the hello world function.
Build and package your Java AWS Lambda with sam build using template.yaml, preparing artifacts for deployment and revealing the .aws-sam build outputs.
Deploy a serverless app with SAM deploy guided, uploading artifacts to S3, converting the SAM template to CloudFormation, and provisioning Lambda, API Gateway, and IAM roles.
Walk through the maven pom.xml dependencies for AWS Lambda Java core, implement the request handler, and use API Gateway pojo classes for input and output.
Demonstrates using sam local start api to simulate api gateway on your local machine, hit the local gateway url, and configure the api gateway in template.yaml from scratch.
Access and tail AWS Lambda logs from your local machine using the SAM CLI, view CloudWatch logs, and diagnose errors with stack traces such as deserialization failures.
Learn how to clean up a lambda project by deleting its CloudFormation stack with AWS CLI, and prepare for future deployment using SAM build and SAM deploy.
Pass a map as input to a java AWS lambda, print data with System.out, and observe CloudWatch logs after deploying via SAM build and invoke.
Build a map of lists in Java for a serverless AWS Lambda, mapping student names to score lists. Test with SAM local invoke after updating template.yaml and rebuilding.
Learn how to pass Java objects as parameters to AWS Lambda and return Pojo data, using a patient class and a clinical data class that follow Java Bean conventions.
Learn how a Java lambda in AWS can use input and output streams with a void return, reading data, converting to lowercase, and writing results back.
Demonstrates the AWS Lambda Java context object, exposing invocation and execution details such as request ID, remaining time, memory limits, and log group information.
Learn how AWS Lambda timeout works, including the default three seconds, identifying remaining time in milliseconds, and configuring a timeout in template.yaml to a maximum of fifteen minutes.
Explore how AWS Lambda instantiates a Java function and how global, class, and local variables affect execution, including a constructor and a static block, with cold start context.
Discover how cold starts affect a java lambda by deploying and testing multiple invocations, observe static and instance fields staying warm, and optimize by keeping expensive work outside invocation.
Invoke remote lambda functions from the command line with the AWS CLI, using async or sync invocation and viewing outputs in files and cloud watch logs.
Discover how API gateway enables serverless APIs with security via Cognito and CloudFront, auto scales from one to ten thousand requests per second, and requires only configuration.
Explore dynamoDB, a serverless, scalable database with tables, items, and attributes, a mandatory partition key, optional soft key, and streams that trigger Lambda functions for serverless APIs.
Explore how to secure serverless Java workloads by configuring IAM execution roles and Dinamo DB permissions for Lambda functions, and applying resource policies for API Gateway triggers managed by SAM.
Create a sam project for orders api from a java template, rename the hello world function to create order, and clean template.yaml for a minimal lambda with api gateway.
Create an order DTO and lambda to parse API Gateway requests with Jackson, then return a 200 response including the order ID.
Configure an api gateway trigger for a lambda using a sam template by pointing to the orders api, setting the handler, and exposing the 'order' path with post.
Deploy and test the orders API by building and deploying with AWS SAM, creating a CloudFormation stack, and validating the Lambda backed API Gateway via Postman using POST to /orders.
Learn to use the global element in template.yaml to apply runtime, memory size, and timeout across all lambda functions, then build and test locally with SAM and Postman.
Create an item in DynamoDB via a Java Lambda by wiring the DynamoDB library, updating POM.xml, and inserting id, item name, and quantity into orders table from an environment variable.
Implement a get orders Lambda that scans a DynamoDB table, maps each item to an order object, and returns a JSON response using a default DynamoDB client.
Configure security by assigning lambda policies to enable CRUD on DynamoDB table via template.yaml, while granting minimal read-only permissions on this table and ensuring the primary key type is number.
Deploy and test a serverless Java app with AWS SAM, API Gateway, and DynamoDB. Create and read orders via Lambda functions, ensuring item name is used consistently.
Learn to expose the API gateway URL via the outputs section of a SAM template, using the Sub intrinsic function to substitute region and endpoints for testing in Postman.
Learn to use the get attribute intrinsic function to render the create order function ARN and its IAM role ARN in the SAM outputs.
Walk through the SAM template YAML to define two lambda functions triggered by S3 and SNS, the S3 bucket, and SNS topic, and explain dynamic names and environment variables.
Create the patient checkout serverless project by using sam init with the hello world template, configure maven dependencies for s3 and sns, and update pom.xml and eclipse import.
Define a patient model and two lambda skeletons, the patient checkout lambda for s3 events and the bill management lambda for sns events, enabling object mapping and toString.
Implement patient checkout lambda to process S3 event notifications, read the uploaded object via S3 API, map JSON to patient checkout event pojos with Jackson, and log results to CloudWatch.
Implement a lambda function triggered by an SNS event to process records, convert JSON messages into a patient check out event with an object mapper, and log to CloudWatch.
Configure the bill management lambda and its resources by updating the yaml template, duplicating the first lambda, renaming to bill management function, and wiring sns events to the topic.
Build, deploy, and test a complete serverless workflow using AWS SAM, S3, and SNS with two Lambda functions and CloudWatch monitoring.
Refactor serverless lambda functions by making fields private final, caching environment variables, and extracting publish to SNS into its method; close S3 input streams after processing and publish per event.
Use the AWS Lambda context logger instead of sys out, retrieve the logger from context, and log exceptions with stack traces via logger.log for clearer CloudWatch logs.
Add log4j 2 dependencies to the pom.xml, switch to slf4j LoggerFactory for logging, and configure log4j 2 with an AWS Lambda appender in src/main/resources.
Test the serverless workflow by uploading a JSON file to S3, then monitor Lambda function logs in CloudWatch to verify the request IDs and log lines appended by log4j.
Master error handling in AWS Lambda for Java across synchronous, asynchronous, and polling triggers, using try-catch, configurable retries, and dead-letter queues with SNS or SQS via template YAML.
Configure a dead letter queue for the checkout lambda using an SNS topic as the DLQ in the SAM template, and set up an error handling lambda.
Delete the CloudFormation stack and empty the S3 bucket to clean up a serverless AWS Java project, using the CLI and console for a fresh start.
Build, deploy, and test a dead letter queue-enabled lambda with an error handler and SNS topic, triggered by S3 events; configure retry and maximum retry attempts in template.yaml.
Demonstrate how AWS Lambda scales with concurrent events by spawning separate function instances and distinct log streams in CloudWatch, validated via two simultaneous S3 uploads.
Demonstrate cold start behavior by triggering an AWS Lambda function through S3 uploads, and observe log streams in CloudWatch showing a reused environment across invocations.
Configure a lambda to use SQS as an event trigger for a claim management use case, processing a batch of messages and logging each message body to CloudWatch.
Create a lambda function to process SQS events by implementing a handler that receives an SQS event, loops through event.getRecords, and prints each message body and its attributes.
Deploy and test a serverless Java app by fixing YAML indentation, building with SAM, deploying, then triggering a Lambda via an SQS queue, and monitoring logs in CloudWatch.
---
Sample of the reviews:
Hello Learners, To put in one word, "Awesome" !!! To learn AWS Serverless basics programmatically. this is the course which needs to be followed step by step. I am writing this after going through first 4 sections. I went through many Udemy courses especially all the top rated ones, everyone explained theoretically. I wasn't satisfied by any of them. I needed to know the flow of how it actually works in code not just through Amazon Console. My search stopped when I found this course :) Thanks a ton Bharath for the guidance -- Rohit Kumar Singh
The best and the most comprehensive AWS Lambda course for Java I can find so far - Marios Chen
Sharing & guiding on cutting edge technologies in a user friendly way is the unique about this course - Samaresh Kumar Pradhan
---
All source code is available for download
Responsive Instructor - All questions answered within 24 hours
Professional video and audio recordings (check the free previews)
----
Are you a Java developer interested in learning Serverless Programming in detail then this course is for you .Are you an experienced java developer who wants to master the fundamentals of AWS Lambda Functions and use them to create Serverless projects then this course is for you as well.
AWS Lambdas combine Nano Services and Function as a service (FaaS) to deliver Serverless programming model while using various other managed components in AWS. Look at any project that is on AWS it will be using AWS Lambda functions. This course is designed for developers with some knowledge of AWS and Java Development.
You will start this course by:
Master the fundamentals of Serverless Programming and AWS Lamdba
Create Lambda Function using the AWS console
Install the tools required to create and deploy Serverless Projects from your command line
Learn the method signature and the data that can be passed to and returned from a Lambda Function
Learn the YAML Syntax required to create SAM template files
Create Projects using SAM CLI
Understand the structure of a Serverless Project
Build and deploy Function as Code(FAAS)
Test the Functions remotely on the cloud and locally
Access the lambda environment information
Create and cleanup the entire infrastructure required for your project with a single command
Create Serverless APIs using API Gateway , AWS Lambda functions and DynamoDB
Learn how to use AWS APIs and SDKs to programatically work with various components
Work on a ASync usecase using S3 and SNS as triggers
Configure Logging using Log4j
Handle Errors gracefully to configure Dead Letter Queues
Learn what Cold Starts are
Scaling Lambda Functions
and more in easy steps