Deploying REST Services with Chalice for AWS

Deploying REST Services with Chalice for AWS

1h 49mAdvanced2019-03-18

Authors

Lawrence Ogrodnek

Lawrence Ogrodnek

Independent Software Developer

Course details

Serverless architectures are growing in popularity due to their low cost and promises of hands-off configuration. Chalice, a microframework for writing serverless Python apps for Amazon Web Services (AWS), is one of the easiest ways to develop and deploy serverless applications. This course explains how to leverage Chalice specifically for deploying serverless REST services. Learn how to implement common REST components, add authentication, and use Cognito for integrating a front-end app and adding sign-up and sign-in features. Instructor Larry Ogrodnek also explains how to set up advanced options such as IAM policy generation and SAM deployment, and how to perform testing of your service. Finally, learn how to set up a continuous deployment pipeline that takes advantage of everything Chalice has to offer.

Learning objectives
Serverless components for REST services
Creating your first Chalice app
Routing requests
Customizing responses
Implementing basic authentication
Integrating Cognito
Setting up custom policies
Splitting up an app
Writing and running tests
Creating a CD pipeline with CodePipeline

Skills covered

Full-Stack Web DevelopmentAmazon Web Services (AWS)AmazonCloud ServicesProjectCloud PlatformsWeb DevelopmentCloud Computing

Concepts

Introduction

  • Develop and deploy serverless apps
  • Course overview

What Is Serverless

  • Serverless overview and concepts
  • Common serverless architectures
  • Serverless components for REST services

Run and Deploy Your First App with Chalice

  • What is Chalice
  • Chalice installation and setup
  • Create and run your first app
  • Deploying, running, and logging in AWS

REST Basics with Chalice

  • Starting a to-do API
  • Request routing
  • Request metadata
  • Error messages
  • Customizing responses
  • CORS support

Authentication

  • Authentication options
  • Implementing basic auth
  • Integrating basic auth
  • API keys

Cognito Integration

  • Cognito and web app setup
  • Chalice configuration
  • Front-end integration
  • Testing it out

Advanced Deployment

  • Policy generation
  • Custom policies
  • Environment variables
  • Splitting up your application
  • SAM deployment

Testing

  • pytest setup
  • Writing and running tests
  • Chalice integration tests

Continuous Deployment via CodePipeline

  • Continuous deployment with CodePipeline and CodeBuild
  • CloudFormation template for CD
  • Adding tests and other options

Other Chalice Features

  • Periodic tasks
  • S3 events

Conclusion

  • Next steps
40,000 Toman