YoVDO

Introduction to Amazon API Gateway (Portuguese)

Offered By: Amazon Web Services via AWS Skill Builder

Tags

Amazon API Gateway Courses AWS Lambda Courses Application Development Courses Amazon CloudWatch Courses

Course Description

Overview

Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!

Visão geral

Neste laboratório, você criará um microsserviço FAQ simples. O microsserviço retornará um objeto JSON contendo um par aleatório de perguntas e respostas usando um endpoint do Amazon API Gateway que invoca uma função AWS Lambda. Aqui está o padrão de arquitetura para o microsserviço:

TÓPICOS ABORDADOS

Ao final do curso, você poderá:

  • Criar uma função do AWS Lambda
  • Criar endpoints do Amazon API Gateway
  • Depurar o API Gateway e o Lambda com o Amazon CloudWatch

PRÉ-REQUISITOS

Alguma experiência e familiaridade com desenvolvimento de aplicação pode ser útil, mas não é essencial para executar o laboratório. Porém, você deve completar o laboratório autoguiado Introdução ao AWS Lambda antes de realizar esse laboratório.

OUTROS SERVIÇOS DA AWS

Outros produtos da AWS além dos necessários para esse laboratório são desabilitados pela política do IAM durante o tempo de acesso nesse laboratório. Além disso, os recursos dos serviços usados neste laboratório são limitados ao que é exigido pelo laboratório e, em alguns casos, são ainda mais limitados como um aspecto intencional do projeto do laboratório. Espere erros ao acessar outros serviços ou executar ações além das fornecidas neste guia de laboratório.

Conceitos técnicos

ARQUITETURA DE MICROSSERVIÇOS

“O estilo de arquitetura de microsserviço é uma abordagem para desenvolver uma aplicação única como suite de pequenos serviços, cada um executando em seu próprio processo e se comunicando com mecanismos leves, geralmente uma API de recurso HTTP. Esses serviços são construídos em torno de recursos de negócios e implantados de forma independente por máquinas de implantação totalmente automatizadas. Há um gerenciamento mínimo centralizado desses serviços, que podem ser escritos em diferentes linguagens de programação e usar diferentes tecnologias de armazenamento de dados.” – James Lewis e Martin Fowler

A ideia de uma arquitetura de microsserviços é pegar um sistema grande e complexo e dividi-lo em serviços independentes e separados fáceis de gerenciar e estender. Isso permite que os desenvolvedores cumpram seus principais objetivos de design, como extensibilidade, disponibilidade e capacidade de manutenção.

O Amazon API Gateway e o AWS Lambda fornecem uma combinação perfeita de serviços Web para criar, entregar e manter sem esforço um conjunto de microsserviços que podem ser a base de sistemas de software complexos.

Nesse laboratório você aprenderá como desenvolver, implantar e depurar um microsserviço simples que representa uma parte de um sistema muito maior. Ele é constituído por duas partes: o RESTful API e a função que é executada quando um usuário chega ao endpoint.

INTERFACE DE PROGRAMAÇÃO DE APLICAÇÃO (API)

Uma interface de programação de aplicação é um conjunto de instruções que define como os desenvolvedores interagem com uma aplicação. A ideia por trás de uma API é criar uma abordagem padronizada para fazer a interface dos vários serviços fornecidos por uma aplicação. Uma API é projetada para ser usada com um kit de desenvolvimento de software (SDK), que é um conjunto de ferramentas que permite que os desenvolvedores criem aplicações de recebimento de dados com base na API.

ESTRATÉGIA PRIMEIRO API

Muitas organizações de software estão adotando uma estratégia primeiro API, na qual cada serviço dentro de sua pilha é primeiro e sempre lançado como uma API. Ao projetar um serviço, é difícil conhecer todas as várias aplicações que podem querer utilizar o serviço. Por exemplo, o serviço de Perguntas frequentes neste laboratório seria ideal para semear páginas de Perguntas frequentes em um site externo. No entanto, é viável pensar que uma empresa de educação em nuvem também desejaria incluir as Perguntas frequentes em seus materiais de treinamento para cartões flash ou documentos de treinamento. Se fosse simplesmente um site estático, o processo de ingestão para a empresa de educação seria muito difícil. Ao fornecer uma API que pode ser consumida em um formato padronizado, o microsserviço está permitindo o desenvolvimento de um ecossistema em torno do serviço e de casos de uso que não foram considerados inicialmente.

API RESTFUL

A transferência de estado representacional (REST) refere-se a arquiteturas que seguem seis restrições:

  • Separação de interesses através do modelo cliente-servidor.
  • estado é armazenado inteiramente no cliente e a comunicação entre o cliente e o servidor é sem estado.
  • O cliente armazenará os dados em cache para melhorar a eficiência da rede.
  • Existe uma interface uniforme (na forma de um API) entre o servidor e o cliente.
  • Conforme a complexidade é adicionada ao sistema, camadas são introduzidas. Poderá existir múltiplas camadas de componentes RESTful.
  • Segue um padrão de código sob demanda, onde o código pode ser baixado em tempo real (em nosso caso, implementado em Lambda) e alterado sem a necessidade de atualizar os clientes.

Esse laboratório está seguindo um modelo RESTful. Clientes enviam pedidos para funções do Lambda de back-end (servidor). A lógica do serviço é encapsulada na função Lambda e fornece uma interface uniforme para os clientes usarem.

PRÁTICAS RECOMENDADAS PARA CRIAR UM API RESTFUL

Um objetivo principal na construção de uma API é ajudar a estabelecer um ecossistema de inovação em torno do seu conjunto de serviços. Portanto, é importante criar sua API intuitiva e fácil de ser usada. Segue um esquema comum de nomenclatura e método:

OperaçãoURLAWS LambdaGET/questionsRetorna todas as perguntasGET/questions/17Retorna a pergunta número 17POST/questionsCria uma nova perguntaPUT/questions/17Atualiza a pergunta número 17PATCH/questions/17Atualiza parcialmente a pergunta número 17DELETE/questions/17Exclui a pergunta número 17

Observe como obter uma pergunta específica, o endpoint da API é NOT /question/name ao invés de /questions/identifier. Isso permite que o designer da API forneça funcionalidade para retornar grupos de perguntas (podem ser todas perguntas) com o endpoint /questions bem como respostas de registro único com /questions/identifier. Para obter mais informações, consulte a seção de recursos adicionais no final desse guia de laboratório.

Alguns bons exemplos de APIs RESTful para olhar são:

  • AWS Elemental MediaConvert
  • Spotify
  • Twitch
  • Netflix Genie
  • Slack

AMAZON API GATEWAY E AWS LAMBDA

Um microsserviço usando o Amazon API Gateway consiste em um recurso definido e métodos associados (GET, POST, PUT etc.) no API Gateway além do destino de back-end. Neste laboratório, o destino de back-end será uma função do Lambda. No entanto, o destino de back-end pode ser outro endpoint HTTP (uma API de terceiros ou servidor da Web de escuta), um proxy de serviço AWS ou uma integração simulada a ser usada como espaço reservado.

AMAZON API GATEWAY

API Gateway é um serviço gerenciado fornecido pela AWS que facilita a criação, a implantação e a manutenção de APIs. API Gateway inclui recursos para:

  • Transformar o corpo e os cabeçalhos de solicitações de API de entrada para corresponder aos sistemas de back-end
  • Transformar o corpo e os cabeçalhos das respostas de saída da API para corresponder aos requisitos da API
  • Controlar o acesso do API com o AWS Identity and Access Management
  • Criar e aplicar chaves de API para desenvolvimento de terceiros
  • Habilitar a integração com o Amazon CloudWatch para o monitoramento de API
  • Armazenar em cache respostas de API por meio do Amazon CloudFront para tempos de resposta mais rápidos
  • Implantar uma API em vários estágios, permitindo fácil diferenciação entre desenvolvimento, teste, produção e controle de versão
  • Conectar domínios personalizados a uma API
  • Definir modelos para ajudar a padronizar suas transformações de solicitação e resposta de API

TERMINOLOGIA DO AMAZON API GATEWAY E AWS LAMBDA

  • Recurso: representado como um endpoint e caminho de URL. Por exemplo, api.mysite.com/questions. Você pode associar métodos de HTTP a recursos e definir diferentes destinos de back-end para cada método. Em uma arquitetura de microsserviços, um recurso representaria um único microsserviço em seu sistema.
  • Método: no API Gateway, um método é identificado pela combinação de um caminho de recurso e um verbo HTTP, como GET, POST e DELETE.
  • Solicitação de método: as configurações de solicitação de método no API Gateway armazenam as configurações de autorização de métodos e definem os parâmetros de string de consulta de URL e cabeçalhos de solicitação HTTP que são recebidos do cliente.
  • Solicitação de integração: as configurações de solicitação de integração definem o destino de back-end usado com o método. É também onde você pode definir modelos de mapeamento, para transformar a solicitação de entrada e corresponder ao que o destino de back-end está esperando.
  • Resposta de integração: as configurações de resposta de integração são onde os mapeamentos são definidos entre a resposta do destino de back-end e a resposta do método no API Gateway. Você também pode transformar os dados que retornam de seu destino de back-end para se ajustarem ao que seus usuários finais e aplicações estão esperando.
  • Resposta do método: as configurações de resposta do método definem os tipos de resposta do método, seus cabeçalhos e tipos de conteúdo.
  • Modelo: no API Gateway, um módulo define o formato, também conhecido como o esquema ou forma, de alguns dados. Você cria e usa modelos para facilitar a criação de modelos de mapeamento. Como o API Gateway foi projetado para funcionar principalmente com dados formatados em JavaScript Object Notation (JSON), o API Gateway usa o esquema JSON para definir o esquema esperado dos dados.
  • Estágio: em API Gateway, um estágio define o caminho através do qual uma implantação de API é acessível. Frequentemente usado para desviar entre as versões, bem como endpoints de desenvolvimento vs. produção etc.
  • Blueprint: um blueprint Lambda é uma função lambda de exemplo que pode ser usada como base para construir novas funções Lambda.

Tags

Related Courses

Introduction to Amazon CloudWatch
Pluralsight
AWS SysOps Admin: Implement Metrics, Alarms, and Filters
Pluralsight
Monitoring and Event Response on AWS for DevOps Engineers
Pluralsight
DevOps on AWS: Operate and Monitor
Amazon Web Services via Coursera
DevOps on AWS: Operate and Monitor
Amazon Web Services via edX