Prefer TypeScript? Check out our TypeScript for AWS Serverless course.
Serverless architectures are the evolution of Platform as a Service (PaaS). With serverless, you give up specification of infrastructure concerns, instead the service allocates resources as required. Code (and servers) are only used when required, to handle specific requests and events. This simplifies deployment whilst reducing costs, since you only pay for what you use. AWS provides a range of services for building serverless architectures.
Python is a dynamic, user-friendly and powerful language with a huge community. It is an excellent choice for building serverless applications on AWS. There are many advantages to writing AWS Lambda code in Python, not least the rapid startup that is vital for serverless functions. But serverless is not just AWS Lambda, we will have systems and services that use lots of AWS resources. We can also leverage Python to write our deployment scripts in code via the AWS Cloud Development Kit (CDK). This allows us to leverage the power of a general purpose programming language to implement and reuse patterns and remove redundancy. This is a step change compared to YAML Cloudformation templates.
In this course you'll move step by step to learn everything you need to know to build Serverless Applications in Python on AWS.
You will need a good understanding of Python, so we can include additional Python modules if required. We can work with your team to ensure we only teach what is necessary - from first principles to advanced topics. Then we'll work with the CDK to deploy your first Lambda and gradually introduce more and more services to build larger and larger applications using services like API Gateway, S3, CloudFront, DynamoDB and more. Along the way you'll learn how to test this code as well.
Introduction to AWS and the Cloud
- Why and how the cloud evolved
- The benefits of the cloud
- IaaS vs PaaS vs SaaS
- Where serverless fits in
- Why choose Amazon Web Services?
- The Shared Responsibility Model
- Using the AWS CLI
The Cloud Development Kit (CDK)
- Cloudformation Service and Templates
- The limits of YAML and potential of code
- Introduction to the CDK
- Comparison with SAM
- Writing CDK Apps in Python
- Using the CDK CLI
- Stacks, Constructs, Patterns and Composition
- Refactoring CDK code and using custom constructs
- AWS Solutions Constructs
- Testing CDK Code
- Introducing serverless functions
- AWS Lambda Triggers and Events
- AWS Lambda Pricing Model
- AWS Lambda Limitations
- Cold Start vs Warm Start
- Writing AWS Lambdas in Python
- Packaging Python for deployment
- The AWS SDK for Python
- Unit Testing AWS Lambdas locally
- Testing AWS Lambdas locally via SAM
Leveraging Other AWS Services
- Amazon API Gateway
- Amazon S3
- Amazon DynamoDB
- Amazon CloudFront
- Amazon SQS
- Amazon SAM
- Amazon Cognito
- Amazon AppSync
- Amazon Amplify
Delegates will need to fully understand the Python language. However, this can be included within the delivery. We can teach from beginner to advanced level and can tailor the course based on your prior knowledge and experience. An active AWS account is required (although one can be provided for an additional fee).