construindo apis com amazon api gateway e aws lambda

40
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Heitor Vital, Arquiteto de Soluções - AWS Brasil Cristiano Camilo, Gerente de Arquitetura - CVC Junho 2016 Construindo APIs com Amazon API Gateway e AWS Lambda

Upload: amazon-web-services-latam

Post on 16-Apr-2017

1.061 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Construindo APIs com Amazon API Gateway e AWS Lambda

© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

Heitor Vital, Arquiteto de Soluções - AWS Brasil

Cristiano Camilo, Gerente de Arquitetura - CVC

Junho 2016

Construindo APIs com Amazon API

Gateway e AWS Lambda

Page 2: Construindo APIs com Amazon API Gateway e AWS Lambda

AWS

Lambda

Page 3: Construindo APIs com Amazon API Gateway e AWS Lambda

AWS Lambda

Serverless, event-driven compute service

microservice sem servidores

Page 4: Construindo APIs com Amazon API Gateway e AWS Lambda

Benefícios

EVENT-DRIVEN SCALESERVERLESS SUBSECOND BILLING

Page 5: Construindo APIs com Amazon API Gateway e AWS Lambda

Como Funciona

1. Upload do código

2. Configure evento e

permissões

3. Lambda executa em

resposta a eventos

4. Pague somente quando

a fução for executada

Page 6: Construindo APIs com Amazon API Gateway e AWS Lambda

Integrações

Lambda

Backend

SNS

Cognito

Kinesis

Dynamo

S3

SDK

Mobile, Alexa

API Gateway

SES

CloudWatch

CloudFormationAWS Config

Scheduled events

Page 7: Construindo APIs com Amazon API Gateway e AWS Lambda

Pontos de Atenção

Controle de Permissão Stateless

Logging e Monitoramento

Page 8: Construindo APIs com Amazon API Gateway e AWS Lambda

Casos de Uso - Tumbnail

Page 9: Construindo APIs com Amazon API Gateway e AWS Lambda

Casos de Uso - ETL

Page 10: Construindo APIs com Amazon API Gateway e AWS Lambda

Casos de Uso – Segurança

Page 11: Construindo APIs com Amazon API Gateway e AWS Lambda

AWS

Lambda

Demo

Page 12: Construindo APIs com Amazon API Gateway e AWS Lambda

Limites

Resource Limits

Duração máxima: 5 minutos

Heap máxima: 1.5 GB

Armazenamento temporário ("/tmp"): 512 MB

Número máximo de processos/threads : 1.024

Tamanho máximo do pacote da aplicação (zip/jar): 50 MB

Page 14: Construindo APIs com Amazon API Gateway e AWS Lambda

Amazon API Gateway

Page 15: Construindo APIs com Amazon API Gateway e AWS Lambda

Proliferação de APIs

O número de APIs publicadas está crescendo rapidamente

2418

10302

0

2000

4000

6000

8000

10000

12000

jun

/05

no

v/0

5

ab

r/0

6

se

t/06

fev/0

7

jul/0

7

de

z/0

7

ma

i/08

ou

t/0

8

ma

r/09

ag

o/0

9

jan

/10

jun

/10

no

v/1

0

ab

r/11

se

t/11

fev/1

2

jul/12

de

z/1

2

ma

i/13

ou

t/13

* Dados do ProgrammableWeb

Page 16: Construindo APIs com Amazon API Gateway e AWS Lambda

Na AWS, nós rodamos muitas APIs

…Com o passar do tempo, nós aprendemos algumas lições

Page 17: Construindo APIs com Amazon API Gateway e AWS Lambda

Seu feedback

Gerenciar múltiplas versões e estágios de uma API é difícil.

Page 18: Construindo APIs com Amazon API Gateway e AWS Lambda

Seu feedback

Gerenciar múltiplas versões e estágios de uma API é difícil.

Monitorar acessos de desenvolvedores terceiros consome tempo.

Page 19: Construindo APIs com Amazon API Gateway e AWS Lambda

Seu feedback

Gerenciar múltiplas versões e estágios de uma API é difícil.

Monitorar acessos de desenvolvedores terceiros consome tempo.

Autorizar acessos é desafiador.

Page 20: Construindo APIs com Amazon API Gateway e AWS Lambda

Seu feedback

Gerenciar múltiplas versões e estágios de uma API é difícil.

Monitorar acessos de desenvolvedores terceiros consome tempo.

Autorizar acessos é desafiador.

Picos de tráfego geram um peso operacional.

Page 21: Construindo APIs com Amazon API Gateway e AWS Lambda

Seu feedback

Gerenciar múltiplas versões e estágios de uma API é difícil.

Monitorar acessos de desenvolvedores terceiros consome tempo.

Autorizar acessos é desafiador.

Picos de tráfego geram um peso operacional.

E se eu não quiser nenhum servidor?

Page 22: Construindo APIs com Amazon API Gateway e AWS Lambda

Amazon API Gateway

Hospede múltiplas versões e ambientes das suas APIs

Crie e distribua chaves de API para desenvolvedores

Beneficie-se da Sigv4/JTW/OAuth para autorizar acesso às APIs

Controle e monitore requisições para proteger o backend, Cache ..

Use AWS Lambda!

Page 23: Construindo APIs com Amazon API Gateway e AWS Lambda

Fluxo de uma chamada API

Internet

Mobile

apps

Websites

Serviços

API

Gateway

Funções

AWS

Lambda

AWS

API

Gateway

cache

Endpoints

na Amazon

Qualquer outro

endpoint

acessível

Amazon

CloudWatc

h

Page 24: Construindo APIs com Amazon API Gateway e AWS Lambda

Configuração da API

Você pode criar APIs

Definir recursos da API

Definir métodos para o recurso

• Métodos são recurso + HTTP verb

Pet Store

/pets

/pets/{petId}

• GET

• POST

• PUT

Page 25: Construindo APIs com Amazon API Gateway e AWS Lambda

Deploy da API

Configuração da API pode ser implantado em

um ambiente (stage)

Stages são ambientes diferentes; por exemplo:

• Dev (e.g., example.com/dev)

• Beta (e.g., example.com/beta)

• Prod (e.g., example.com/prod)

Pet Store

dev

beta

gamma

prod

Page 26: Construindo APIs com Amazon API Gateway e AWS Lambda

Gerencie múltiplos ambientes e versões de sua

API

API 1 (v1)

Stage (dev)

Stage (prod)

API 2 (v2)

Stage (dev)

Page 27: Construindo APIs com Amazon API Gateway e AWS Lambda

Custom domain names

• Você pode configurar custom domain names

• Forneça API Gateway com um certificado HTTPS

• Custom domain names podem ser apontados para um estágio da API

• Aponte para uma API e ambiente (stage)

• Beta (e.g., yourapi.com/beta)

• Prod (e.g., yourapi.com/prod)

Page 28: Construindo APIs com Amazon API Gateway e AWS Lambda

Segurança – Sigv4

Call login API, no

authentication

required

Cliente API Gateway Backend

/loginAWS

Lambda

fn_login

User

accounts

database

Credentials

verified

Amazon Cognito

developer

authenticated

identities

Access and

secret key/login

Receives

credentials to

sign API calls

Page 29: Construindo APIs com Amazon API Gateway e AWS Lambda

Segurança – Custom Authorizer

Page 30: Construindo APIs com Amazon API Gateway e AWS Lambda

Caching API responses

Requisição

•Procura peloitem no cache

•Se encontrado, retorna o item

Verifica as configs de controle

• Verificarequests-per-second rate

• Se acima, return 429

Executa back-end

Page 31: Construindo APIs com Amazon API Gateway e AWS Lambda

Caching API responses

Você pode configurar a chave de cache e TTL da resposta

da API

Itens cacheados retornam sem chamar o backend

Um cache é dedicado para você, por estágio (stage)

0.5 GB a 237 GB de cache

Page 32: Construindo APIs com Amazon API Gateway e AWS Lambda

API GatewayBack end

GET - /sayHelloAWS

Lambda

fn_sayHello

/sayHello

{

“message” : “hello world”

}

<xml>

<message>

Hello world

</message>

</xml>

#set($root = $input.path('$'))

<xml>

<message>

$root.message

</message>

</xml>

Input/output transforms

Page 33: Construindo APIs com Amazon API Gateway e AWS Lambda

Input/output transforms

Filtrar resultados de output

• Remover dados privados ou desnecessários

• Filtrar o tamanho do dataset para melhorar a performance da API

GET para POST

• Leia os query string parameters de sua requisição GET e crie um corpo para

fazer requisições POST para seu back end

JSON para XML

• Receba um input JSON e transforme-o em XML para seu back end

• Receba um JSON de uma função AWS Lambda e transforme-o para XML

Page 34: Construindo APIs com Amazon API Gateway e AWS Lambda

Outras Funcionalidades

Mock Integration

Importador de Swagger

Gere SDKs a partir de sua Your APIs

Custom Domain / HTTPS

Client-Side SSL Authentication

Link lambda version

Page 35: Construindo APIs com Amazon API Gateway e AWS Lambda

Amazon API Gateway

Demo

Page 36: Construindo APIs com Amazon API Gateway e AWS Lambda

“Headline 1 – sobre resultados gerais do projeto”

• Maior rede exclusiva de turismo do

Brasil, contando com mais de 1000

lojas próprias

• Mais de 7 milhões de clientes

embarcados em 2015

• Marca “Top of Mind” no segmento de

Turismo

• 44 anos de experiência no Mercado

“Com a combinação dos

mecanismos da AWS

Api Gateway, Elastic

Cache e Lambda

pudemos desenhar uma

arquitetura escalável e

de rápida

implementação.”

Cristiano Camilo

Page 37: Construindo APIs com Amazon API Gateway e AWS Lambda

O Desafio

• Substituir arquitetura atual por outra

mais escalável, suportando assim

picos de acesso mais naturalmente

• Prover um melhor tempo de resposta

para o usuário final, sem a latência

dos atuais fornecedores

• Padronizar as APIS expostas e

garantir segurança de acesso as

mesmas

Page 38: Construindo APIs com Amazon API Gateway e AWS Lambda

Solução

Page 39: Construindo APIs com Amazon API Gateway e AWS Lambda

Amazon API GatewayRecapitulando

AWS Lambda

• Não há servidores para serem

gerenciados

• Escalabilidade contínua

• Medidor de sub-segundo

• Econômico e eficiente

• Desempenho em qualquer escala

• Monitore facilmente as atividades

das APIs

• Agilize o desenvolvimento de APIs

• Controles de segurança flexíveis

• Crie endpoints RESTful para

serviços existentes

• Execute suas APIs sem servidores

Page 40: Construindo APIs com Amazon API Gateway e AWS Lambda