Introdução ao Amazon API Gateway usando AWS Lambda

Introdução ao Amazon API Gateway usando AWS Lambda

Nó Fonte: 1860150

Introdução

O que é uma API?

Em termos simples, a API é um mensageiro; vamos entender isso com alguns exemplos. Digamos que você esteja com fome e precise cozinhar algo em casa. Se você quiser fazer macarrão, basta tirar os ingredientes do armário, acender o fogão e fazer você mesmo. Este é um programa fazendo algo por conta própria com seus próprios recursos. Mas digamos que você queira pizza – você não tem os ingredientes e seu forno doméstico não é adequado para fazer uma crosta crocante. Então você vai a uma pizzaria. Mas ao contrário de casa, você não pode simplesmente ir para a cozinha e começar a usar os ingredientes para fazer uma pizza. Eles não querem suas mãos sujas nas coisas deles! Então o que você vai fazer? Você tem que ir ao balcão e fazer um pedido – haverá um menu listando quais pizzas você pode pedir e quais coberturas ou outras opções você pode escolher. Esta é uma API.

Uma interface de programação de aplicativo (API) é um conjunto de regras que especificam como dois programas de software devem interagir.

Uma API permite que um programa de software acesse a funcionalidade de outro programa de software. Por exemplo, se você tiver um programa de software que precise recuperar dados da Internet, ele poderá usar uma API para solicitar esses dados de um servidor. O servidor responderá com os dados solicitados e o programa de software poderá usá-los conforme necessário.

As APIs são usadas para permitir que diferentes programas de software se comuniquem e compartilhem dados e funcionalidades. Eles são uma parte importante do desenvolvimento de software moderno, pois permitem que diferentes sistemas trabalhem juntos e permitem a criação de aplicativos de software mais complexos e poderosos.

APIs HTTP

API HTTP é um tipo de API que usa o protocolo HTTP para enviar e receber dados. Ele permite que programas de software enviem e recebam dados usando solicitações e respostas HTTP. Essas solicitações e respostas podem estar em vários formatos, como texto simples, JSON ou XML. Eles são comumente usados ​​em uma ampla variedade de aplicativos, incluindo aplicativos da Web, aplicativos móveis e microsserviços. Essas APIs são relativamente mais baratas que as APIs REST e têm menos funcionalidades que as posteriores.

APIs REST

API REST é um tipo de API que segue um conjunto de princípios arquitetônicos chamados REST (Representational State Transfer). REST é um estilo de arquitetura de software que define um conjunto de restrições para a criação de APIs da Web.

APIs com estado

Uma API com estado é uma API que mantém informações sobre cada solicitação do cliente e usa essas informações para processar solicitações subsequentes. Isso significa que a API armazena dados sobre cada solicitação, como os parâmetros da solicitação, em uma sessão do lado do servidor. Esses dados são usados ​​para processar solicitações subsequentes do mesmo cliente.

APIs sem estado

Uma API sem estado, por outro lado, não mantém informações sobre as solicitações do cliente. Ele processa cada solicitação de forma independente, sem armazenar nenhum dado sobre as solicitações anteriores. Isso significa que a API não mantém uma sessão do lado do servidor e não usa dados de solicitações anteriores para processar solicitações subsequentes.

Principais diferenças entre APIs com e sem estado

Abaixo estão algumas diferenças importantes entre APIs com e sem estado:

APIs COM ESTADO

APIs SEM ESTÁDIO

1. Exigir uma sessão do lado do servidor para armazenar dados sobre as solicitações do cliente 1. Não requer uma sessão do lado do servidor para armazenar dados sobre as solicitações do cliente
2. Às vezes, elas podem ser mais lentas do que as APIs sem estado porque exigem e armazenam dados que levam tempo. 2. As APIs sem estado são mais rápidas porque não requerem e não armazenam dados sobre as solicitações.
3. APIs com estado não são fáceis de escalar  3. Mais fáceis de escalar, pois não precisam manter dados sobre solicitações anteriores.
4. Geralmente considerados menos seguros do que APIs sem estado 4. Estes são geralmente considerados mais seguros.

O que é Amazon API Gateway?

O Amazon API Gateway é um serviço da AWS usado para criar, manter e monitorar APIs com estado (websocket) e sem estado (HTTP e REST). Podemos usar essas APIs para acessar:

  1. Qualquer serviço da AWS
  2. Os dados armazenados na nuvem AWS (como um balde S3)
  3. Quaisquer outros serviços da web.

Se você é um desenvolvedor de API, também pode facilmente criar suas APIs para desenvolvedores terceirizados.

Existem principalmente dois tipos de usuários do AWS API Gateway.

  1. i) Desenvolvedores de API que criam e implantam uma API para habilitar a funcionalidade necessária no API Gateway
  2. ii) Desenvolvedores de aplicativos que são clientes do desenvolvedor da API.

Arquitetura do Amazon API Gateway

arquitetura

Essa arquitetura ilustra como os aplicativos sem servidor podem ser criados com uma experiência de desenvolvedor consistente e integrada. Dos usuários finais aos data centers, o API Gateway lida com todas as tarefas envolvidas, como aceitar e processar milhares de chamadas simultâneas, gerenciamento de tráfego, autorização, monitoramento, controle de acesso, etc.

Recursos do Amazon API Gateway

  1. Ele oferece suporte a APIs com e sem estado. (Exemplos: Websocket, HTTP e REST).
  2. Mecanismos de autenticação poderosos incluem AWS Identity, políticas de gerenciamento de acesso e autorizador Lambda.
  3. Portal do desenvolvedor onde os desenvolvedores de APIs podem publicar suas APIs.
  4. Logging de execução e acesso para CloudWatch, incluindo a opção de definir alarmes.
  5. Integração com outros serviços da AWS, como AWS Lambda e AWS Kinesis.
  6. A integração com o AWS WAF é usada para proteção contra explorações da Web, e o AWS X-Ray é usado para entender e enfatizar as latências de desempenho.

Introdução ao Amazon API Gateway

Agora vamos criar uma API sem servidor. Em uma API sem servidor, podemos nos concentrar em nossos aplicativos em vez de gastar tempo gerenciando servidores. Funciona assim:

  • A API é invocada pelo cliente
  • API envia solicitação para lambda
  • Lambda executa a função lambda e envia o resultado de volta para a API
  • Depois de receber o resultado do lambda, a API responde ao cliente

API http

Passo 1 – Crie uma função lambda

A função Lambda é usada para o back-end de nossa API. O Lambda executa o código somente quando necessário. Ele também escala automaticamente de algumas solicitações por dia para milhares de solicitações a cada segundo.

criar função lambada

Criando uma função lambda:

1) Acesse o console lambda em https://console.aws.amazon.com/lambda

2) Clique em Criar função.

3) Digite “my-function” como o nome da função.

4) Escolha Python 3.9 como tempo de execução.

5) Para esta função não precisaremos alterar nada na aba Permissões e Configurações Avançadas pois as permissões padrão são suficientes para esta demonstração.

4) Clique em Criar função.

PASSO 2 – Criando uma API HTTP

API da Amazon

A API HTTP fornece um endpoint HTTP para sua função Lambda. Funciona assim:

  • O cliente envia a consulta para a API HTTP
  • A API aciona lambda que então executa a função lambda
  • Lambda envia o resultado para a API
  • A API responde ao cliente com a resposta recebida

Etapas para criar uma API HTTP

1) Visite o console do API Gateway em https://console.aws.amazon.com/apigateway

2) Clique em Build para criar sua primeira API HTTP

3) Clique em Adicionar integração para integração

4) Selecione Lambda.

5) Digite sua função lambda my-function.

6) Para o nome da API, digite my-http-api.

7) Clique em Avançar.

8) Revise a rota criada para você e escolha Avançar.

9) Revise o estágio criado para você e escolha Next.

10) Clique em Criar.

ETAPA 3 Teste sua API –

Em seguida, precisamos testar nossa API para garantir que está funcionando. Para isso, usaremos um navegador da Web para invocar nossa API.

API da Amazon

Para testar nossa API

  1. Acesse o console do API Gateway em https://console.aws.amazon.com/apigateway
  2. Selecione sua API.
  3. Anote a URL de invocação da sua API. (veja a imagem acima)
  4. Copie o URL de invocação da sua API e cole-o em um navegador da web. Junte a URL de invocação e o nome de sua função lambda para chamar sua função Lambda. O console do API Gateway cria uma rota usando o nome de sua função Lambda “my-function” por padrão. 

    O URL completo deve ser semelhante a https://abcdef123.execute-api.us-east-2.amazonaws.com/my-function. Quando você carrega esse URL, uma solicitação GET é enviada pelo seu navegador para a API

  1. Você deve ver o texto “Hello from Lambda!” no seu navegador. Portanto, a resposta da sua API é verificada.

API da Amazon

Conclusão

Criamos nossa primeira API HTTP usando o Amazon API Gateway e o AWS Lambda. Além disso, podemos explorar vários casos de uso do mesmo e, da mesma forma, também podemos criar a API REST, que fornece mais funcionalidades.

Gostou deste artigo? Conte-nos seus pensamentos no comentário abaixo. Além disso, não se esqueça de mencionar qual artigo você gostaria de ler a seguir.

Carimbo de hora:

Mais de Análise Vidhya