Teaches you how to get simple stuff done in AWS Lambda quickly, without trying to change the way you structure or run projects.
Serverless Applications with Node.js walks you through building serverless apps on AWS using JavaScript. Inside, you'll discover what Claudia.js brings to the table as you build and deploy a scalable event-based serverless application, based around a pizzeria that’s fully integrated with AWS services, including Lambda and API Gateway. Each chapter is filled with exercises, examples, tips, and more to make sure you’re ready to bring what you’ve learned into your own work.
Part 1: Serverless Pizzeria
1 Introduction to serverless
1.1 Servers and washing machines
1.2 The core concepts
1.3 How does serverless work?
1.4 Serverless in practice
1.4.1 Aunt Maria’s serverless pizzeria
1.4.2 A common approach
1.4.3 Serverless approach
1.5 Serverless infrastructure — AWS
1.6 What is Claudia, and how does it fit?
1.7 When and where should you use it?
Summary
2 Building your first serverless API
2.1 Assembling pizza ingredients: Building the API
2.1.1 Which pizza can I GET?
2.1.2 Structuring your API
2.1.3 POSTing an order
2.2 How Claudia deploys your API
2.3 Traffic control: How API Gateway works
2.4 When a serverless API is not the solution
2.5 Taste it!
2.5.1 Exercise
2.5.2 Solution
Summary
3 Asynchronous work is easy, we Promise()
3.1 Storing the orders
3.2 Promising to deliver in less than 30 minutes!
3.3 Trying out your API
3.4 Getting orders from the database
3.5 Taste it!
3.5.1 Exercise
3.5.2 Solution
Summary
4 Pizza delivery: Connecting an external service
4.1 Connecting to an external service
4.2 Connecting to the delivery API
4.2.1 The Some Like It Hot Delivery API
4.2.2 Creating your first delivery request
4.3 Potential issues with async communication
4.3.1 Forgetting to return a promise
4.3.2 Not passing the value from the promise
4.3.3 Not wrapping the external service in a promise
4.3.4 Timeout issues with long async operations
4.4 Taste it!
4.4.1 Exercise
4.4.2 Solution
Summary
5 Houston, we have a problem!
5.1 Debugging a serverless app
5.2 Debugging your Lambda function
5.3 X-Ray your app
5.4 Taste it!
5.4.1 Exercise
5.4.2 Solution
Summary
6 Level up your API
6.1 Serverless authentication and authorization
6.2 Creating user and identity pools
6.2.1 Controlling API access with Cognito
6.3 Taste it!
6.3.1 Exercise
6.3.2 Solution
Summary
7 Working with files
7.1 Storing static files in a serverless application
7.2 Generating thumbnails
7.2.1 Deploying your S3 function
7.3 Taste it!
7.3.1 Exercise
7.3.2 Solution
7.4 End of part 1: Special exercise
7.4.1 Advanced task
Summary
Part 2: Let’s talk
8 When pizza is one message away: Chatbots
8.1 Pizza ordering beyond the browser
8.2 Hello from Facebook Messenger
8.3 What kinds of pizzas do you have?
8.4 Speeding up the deployment
8.5 Messenger templates
8.6 How does Claudia Bot Builder work?
8.7 Taste it!
8.7.1 Exercise
8.7.2 Solution
Summary
9 Typing… Async and delayed responses
9.1 Making chatbots interactive
9.1.1 Click to order: Answering a postback
9.2 Making the chatbot structure more scalable
9.3 Connecting your chatbot to the DynamoDB database
9.4 Getting the user’s location from the chatbot
9.5 Scheduling a delivery
9.6 Small talk: Integrating simple NLP
9.7 Taste it!
9.7.1 Exercise
9.7.2 Solution
9.7.3 Advanced exercise
Summary
10 Jarvis, I mean Alexa, order me a pizza
10.1 Can’t talk right now: Sending an SMS with Twilio
10.1.1 An SMS pizza list
10.1.2 Ordering a pizza
10.2 Hey Alexa!
10.2.1 Anatomy of an Alexa skill
10.2.2 Preparing the skill
10.2.3 Ordering pizza with Alexa
10.3 Taste it!
10.3.1 Exercise
10.3.2 Solution
10.4 End of part 2: Special exercise
Summary
Part 3: Next Steps
11 Testing, Testing, 1, 2, 3
11.1 Testing server-hosted and serverless applications
11.2 How to approach testing serverless applications
11.3 Preparation
11.4 Unit tests
11.5 Mocking your serverless functions
11.6 Integration tests
11.7 Other types of automated testing
11.8 A step beyond: Writing testable serverless functions
11.9 Taste it!
11.9.1 Exercise
11.9.2 Solution
Summary
12 Paying for pizza
12.1 Payment transactions
12.1.1 Implementing an online payment
12.2 Implementing your payment service
12.3 Could someone hack your payment service?
12.3.1 Standards
12.3.2 Competence
12.4 Taste it!
12.4.1 Exercise
12.4.2 Solution
Summary
13 Migrating your existing Express.js app to AWS Lambda
13.1 Uncle Roberto’s taxi application
13.2 Running an Express.js application in AWS Lambda
13.2.1 Proxy integration
13.2.2 How serverless-express works
13.3 Serving static content
13.4 to MongoDB
13.4.1 Using a managed MongoDB database with your serverless Express.js app
13.5 Limitations of serverless Express.js applications
13.6 Taste it!
13.6.1 Exercise
13.6.2 Solution
Summary
14 Migrating to serverless
14.1 Analyzing your current serverless application
14.2 Migrating your existing application to serverless
14.3 Embrace the platform
14.3.1 Serving static files
14.3.2 Storing state
14.3.3 Logs
14.3.4 Continuous integration
14.3.5 Managing environments: Production and development
14.3.6 Sharing secrets
14.3.7 VPC (Virtual Private Cloud)
14.4 Optimizing your application
14.4.1 Bundled or single-purpose functions
14.4.2 Choosing the right memory size for your Lambda function
14.5 Facing the challenges
14.5.1 Handling timeouts
14.5.2 Cold starts
14.5.3 DDoS attacks
14.5.4 Vendor lock-in
14.6 Taste it!
Summary
15 Real-world case studies
15.1 CodePen
15.1.1 Before serverless
15.1.2 Serverless migration
15.1.3 Cost of the infrastructure
15.1.4 Testing and challenges
15.2 MindMup
15.2.1 Before serverless
15.2.2 Serverless migration
15.2.3 Cost of the infrastructure
15.2.4 Testing, logs, and challenges
Summary
Appendixes
Appendix A: Installation and configuration
A.1 Installing Claudia
A.1.1 Configuring Claudia prerequisites
A.1.2 Creating an AWS profile and getting the keys
A.1.3 Installing Claudia API Builder
A.1.4 Installing Claudia Bot Builder
A.2 Installing the AWS CLI
Appendix B: Facebook Messenger, Twilio, and Alexa configuration
B.1 Facebook Messenger setup
B.1.1 Creating a Facebook page
B.1.2 Creating a Facebook app
B.1.3 Creating a Facebook Messenger chatbot using Claudia Bot Builder
B.1.4 Enabling built-in NLP
B.2 Twilio setup
B.2.1 Creating a Twilio account
B.2.2 Getting a Twilio number
B.2.3 Setting up your Twilio Programmable SMS service
B.3 Alexa skill setup
Appendix C: Stripe and MongoDB setup
C.1 Setting up your Stripe account and retrieving Stripe API keys
C.1.1 Creating a Stripe account
C.1.2 Getting your Stripe API keys
C.2 Installing and configuring MongoDB
C.2.1 Creating an account
C.2.2 Configuring your cluster
Appendix D: The pizza recipe
About the Technology
The benefits of cloud-hosted serverless web apps are undeniable: lower complexity, quicker time to market, and easier scalability than traditional, server-dependent designs. And thanks to JavaScript support in AWS Lambda and powerful new serverless API tools like the Claudia.js library, you can build and deploy serverless apps end to end without learning a new language.
About the book
Serverless Applications with Node.js teaches you to design and build serverless web apps on AWS using JavaScript, Node, and Claudia.js. You’ll master the basics of writing AWS Lambda functions, along with core serverless patterns like API Gateway. Along the way, you’ll practice your new skills by building a working chatbot and a voice assistant with Amazon Alexa. You’ll also discover techniques for migrating existing apps to a serverless platform.
placing your order...
Don't refresh or navigate away from the page.FREE domestic shipping on three or more pBooks
A top-notch and hands-on resource written by world-renowned experts who will get you up to speed in no time with AWS Lambda using Claudia.js.
One of the most comprehensive books published on the topic; contains a wealth of resources that you will not find online.