Book Image

Building Serverless Python Web Services with Zappa

By : Abdulwahid Abdulhaque Barguzar
Book Image

Building Serverless Python Web Services with Zappa

By: Abdulwahid Abdulhaque Barguzar

Overview of this book

Serverless applications are becoming very popular these days, not just because they save developers the trouble of managing the servers, but also because they provide several other benefits such as cutting heavy costs and improving the overall performance of the application. This book will help you build serverless applications in a quick and efficient way. We begin with an introduction to AWS and the API gateway, the environment for serverless development, and Zappa. We then look at building, testing, and deploying apps in AWS with three different frameworks--Flask, Django, and Pyramid. Setting up a custom domain along with SSL certificates and configuring them with Zappa is also covered. A few advanced Zappa settings are also covered along with securing Zappa with AWS VPC. By the end of the book you will have mastered using three frameworks to build robust and cost-efficient serverless apps in Python.
Table of Contents (20 chapters)
Title Page
Dedication
Packt Upsell
Contributors
Preface
Index

Chapter 10, Advanced Zappa Settings


  1. AWS Lambda is designed to provide a serverless infrastructure. It instantiates the context on invocation request and then destroys itself after serving the request. AWS Lambda adds a little time delay for the initial startup and setting up the context. To avoid it, you can keep the Lambda instance in a warm state by setting up the schedule trigger using AWS CloudWatch. Zappa provides this feature by default and you can turn off this feature by setting the keep_warm attribute to false.
  2. Cross-Origin Resource Sharing (CORS) is mechanism that allows a domain to access restricted resources from the different domain. 
  3. Zappa provides an easy way of managing large size project as AWS Lambda has a limitation of uploading the build package with 50 MB but also have an option to service bigger size build packages from Amazon S3. In Zappa setting, you can slim_handler to true which will upload the build package on Amazon S3 and then configure the AWS Lambda against the uploaded build package on Amazon S3.