0% found this document useful (0 votes)
102 views10 pages

Introduction To Amazon API Gateway

This document provides an introduction to building a simple microservice using Amazon API Gateway and AWS Lambda. It describes creating an AWS Lambda function, setting up API Gateway endpoints, and debugging with CloudWatch. Key concepts covered include microservice architecture, RESTful APIs, and how API Gateway and Lambda work together.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
102 views10 pages

Introduction To Amazon API Gateway

This document provides an introduction to building a simple microservice using Amazon API Gateway and AWS Lambda. It describes creating an AWS Lambda function, setting up API Gateway endpoints, and debugging with CloudWatch. Key concepts covered include microservice architecture, RESTful APIs, and how API Gateway and Lambda work together.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

 Introduction to Amazon API Gateway   Join Sign in

Introduction to Amazon API


Gateway

55 minutes Free

SPL-58 - Version 2.0.9

© 2019 Amazon Web Services, Inc. and its affiliates. All rights reserved. This work
may not be reproduced or redistributed, in whole or in part, without prior written
permission from Amazon Web Services, Inc. Commercial copying, lending, or
selling is prohibited.
Search 
Errors or corrections? Email us at [email protected].

Other questions? Contact us at https://aws.amazon.com/contact-us/aws-training/

Overview

In this lab, you will create a simple FAQ micro-service. The micro-service will
return a JSON object containing a random question and answer pair using an
Amazon API Gateway endpoint that invokes an AWS Lambda function. Here is the
architecture pattern for the micro-service:

Topics covered
Search 
By the end of this lab you will be able to:

Create an AWS Lambda function


Create an Amazon API Gateway endpoints
Debug API Gateway and Lambda with Amazon CloudWatch

Prerequisites

Some programming experience and familiarity with application development will


be helpful, but not necessary to run the lab. You should however have completed
the Introduction to AWS Lambda self-paced lab before this doing lab.

Other AWS Services

Other AWS Services than the ones needed for this lab are disabled by IAM policy
during your access time in this lab. In addition, the capabilities of the services
used in this lab are limited to what is required by the lab and in some cases are
even further limited as an intentional aspect of the lab design. Expect errors when
accessing other services or performing actions beyond those provided in this lab
guide.

Technical Concepts
Search 
Microservice Architecture

"The microservice architectural style is an approach to developing a single


application as a suite of small services, each running in its own process and
communicating with lightweight mechanisms, often an HTTP resource API. These
services are built around business capabilities and independently deployable by
fully automated deployment machinery. There is a bare minimum of centralized
management of these services, which may be written in different programming
languages and use different data storage technologies." -- James Lewis and
Martin Fowler

The idea of a microservices architecture is to take a large, complex system and


break it down into independent, decoupled services that are easy to manage and
extend. This enables developers to meet their key design goals like extensibility,
availability and maintainability.

Amazon API Gateway and AWS Lambda provide the perfect combination of web
services to effortlessly build, deliver and maintain a suite of microservices that
can be the foundation of complex software systems.

In this lab, you will learn how to develop, deploy and debug a simple microservice
that represents one part of a much larger system. It will consist of two pieces: the
RESTful API and the function that is executed when a user hits the endpoint.

Application Programming Interface (API)


Search 
An application programming interface is a set of instructions that defines how
developers interface with an application. The idea behind an API is to create a
standardized approach to interfacing the various services provided by an
application. An API is designed to be used with a Software Development Kit
(SDKs), which is a collection of tools that allows developers to easily create
downstream applications based on the API.

API-First Strategy

Many software organizations are adopting an API-First strategy, where each


service within their stack is first and always released as an API. When designing a
service, it is hard to know all of the various applications that may want to utilize
the service. For instance, the FAQ service in this lab would be ideal to seed FAQ
pages on an external website. However, it is feasible to think that a cloud
education company would also want to ingest the FAQ within their training
materials for flash cards or training documents. If it was simply a static website,
the ingestion process for the education company would be very difficult. By
providing an API that can be consumed in a standardized format, the microservice
is enabling the development of an ecosystem around the service, and use-cases
that were not initially considered.

RESTful API

Representational state transfer (REST) refers to architectures that follow six


Search
constraints: 
Separation of concerns via a client-server model.
State is stored entirely on the client and the communication between the client
and server is stateless.
The client will cache data to improve network efficiency.
There is a uniform interface (in the form of an API) between the server and
client.
As complexity is added into the system, layers are introduced. There may be
multiple layers of RESTful components.
Follows a code-on-demand pattern, where code can be downloaded on the fly
(in our case implemented in Lambda) and changed without having to update
clients.

This lab is following a RESTful model. Clients send requests to backend Lambda
functions (server). The logic of service is encapsulated within the Lambda
function and it is providing a uniform interface for clients to use.

Best Practices for Building a RESTful API

A key goal of building an API is to help establish an ecosystem of innovation


around your set of services. Therefore, it is important to make your API intuitive
and easy-to-use. Here is a common naming and method scheme to follow:

Operation URL Function

GET /questions Returns all of the questions

Search GET /questions/17 Returns the question number 17 


POST /questions Creates a new question

PUT /questions/17 Updates question number 17

PATCH /questions/17 Partially updates question number 17

DELETE /questions/17 Deletes question number 17

Notice how to get a specific question, the API endpoint is NOT /question/name but
instead /questions/identifier. This enables the API designer to provide
functionality to return groups of questions (could be all questions) with the
/questions endpoint as well as single record responses with the
/questions/identifier. For more information, see the additional resources section
at the end of this lab guide.

A few good examples of RESTful APIs to look at are:

The White House


Spotify

Amazon API Gateway and AWS Lambda

A microservice using Amazon API Gateway consists of a de ned resource and


associated methods (GET, POST, PUT, etc.) in API Gateway as well as the backend
target. In this lab, the backend target will be a Lambda function. However, the
backend target could be another HTTP endpoint (a third-party API or listening web
server), an AWS service proxy or a mock integration to be used as a placeholder.
Search 
Amazon API Gateway

API Gateway is a managed service provided by AWS that makes creating,


deploying and maintaining APIs easy. API Gateway includes features to:

Transform the body and headers of incoming API requests to match backend
systems
Transform the body and headers of the outgoing API responses to match API
requirements
Control API access via Amazon Identity and Access Management
Create and apply API keys for third-party development
Enable Amazon CloudWatch integration for API monitoring
Cache API responses via Amazon CloudFront for faster response times
Deploy an API to multiple stages, allowing easy differentiation between
development, test, production as well as versioning
Connect custom domains to an API
Define models to help standardize your API request and response
transformations

Amazon API Gateway and AWS Lambda Terminology

Resource: Represented as a URL endpoint and path. For example,


api.mysite.com/questions. You can associate HTTP methods with resources
and define different backend targets for each method. In a microservices
architecture, a resource would represent a single microservice within your
Search system. 
Method: In API Gateway, a method is identified by the combination of a
resource path and an HTTP verb, such as GET, POST, and DELETE.
Method Request: The method request settings in API gateway store the
methods authorization settings and define the URL Query String parameters
and HTTP Request Headers that are received from the client.
Integration Request: The integration request settings define the backend target
used with the method. It is also where you can define mapping templates, to
transform the incoming request to match what the backend target is expecting.
Integration Response: The integration response settings is where the mappings
are defined between the response from the backend target and the method
response in API Gateway. You can also transform the data that is returned from
your backend target to fit what your end users and applications are expecting.
Method Response: The method response settings define the method response
types, their headers and content types.
Model: In API Gateway, a model defines the format, also known as the schema
or shape, of some data. You create and use models to make it easier to create
mapping templates. Because API Gateway is designed to work primarily with
JavaScript Object Notation (JSON)-formatted data, API Gateway uses JSON
Schema to define the expected schema of the data.
Stage: In API Gateway, a stage defines the path through which an API
deployment is accessible. This is commonly used to deviate between versions,
as well as development vs production endpoints, etc.
Blueprint: A Lambda blueprint is an example lambda function that can be used
as a base to build out new Lambda functions.

Search 
Join Qwiklabs to read the rest of this lab...and more!

Get temporary access to the Amazon Web Services Console.


Over 200 labs from beginner to advanced levels.
Bite-sized so you can learn at your own pace.

Join to Sta This Lab

You might also like