Conceitos básicos do Amazon API Gateway

Crie uma conta gratuita

O nível gratuito do Amazon API Gateway inclui um milhão de chamadas de API por mês durante até 12 meses.

P: O que é o Amazon API Gateway?

O Amazon API Gateway é um serviço totalmente gerenciado que permite que desenvolvedores publiquem, mantenham, monitorem e protejam APIs em qualquer escala. Com apenas alguns cliques no Console de Gerenciamento da AWS, você pode criar uma API que atua como uma "porta de entrada" para que aplicativos acessem dados, lógica de negócios ou funcionalidades a partir de serviços de back-end, como aplicações executadas no Amazon Elastic Compute Cloud (Amazon EC2), código executado no AWS Lambda ou qualquer aplicação web. O Amazon API Gateway processa todas as tarefas relacionadas à aceitação e ao processamento de até centenas de milhares de chamadas simultâneas de APIs, incluindo gerenciamento de tráfego, autorização e controle de acesso, monitoramento e gerenciamento de versões de APIs. O Amazon API Gateway não tem taxas mínimas ou custos antecipados. Você paga apenas pelas chamadas de API recebidas e pela quantidade transferida de dados de saída.

P: Por que usar o Amazon API Gateway?

O Amazon API Gateway oferece aos desenvolvedores um serviço simples, flexível, totalmente gerenciado e com pagamento conforme o uso que trata de todos os aspectos da criação e da operação de APIs robustas para back-ends de aplicações.  Com o Amazon API Gateway, você pode lançar novos serviços com mais rapidez e menos investimento, permitindo que você se concentre na criação dos serviços de negócios essenciais.  O Amazon API Gateway foi criado para ajudar nos diversos aspectos da criação e do gerenciamento de APIs:

1) Medição. O API Gateway ajuda você a definir planos que mensuram e restringem o acesso de desenvolvedores externos às suas APIs. Você pode definir um conjunto de planos, configurar controles e limites de cotas por chave de API. O API Gateway mensura o tráfego automaticamente para as suas APIs e permite que você extraia dados de utilização para cada chave de API.

2) Segurança. O API Gateway oferece diversas ferramentas para autorizar o acesso às APIs e para controlar o acesso às operações dos serviços. O Amazon API Gateway permite usar as ferramentas de administração e segurança da AWS, como o AWS Identity and Access Management (IAM) e o Amazon Cognito, para autorizar acesso a suas APIs. O Amazon API Gateway pode verificar chamadas de APIs assinadas em seu nome usando a mesma metodologia usada pela AWS para as suas próprias APIs. Usando autorizadores autorizados escritos como funções do AWS Lambda, o API Gateway também pode ajudá-lo a verificar tokens ao portador recebidos, removendo as preocupações com autorização de seu código de back-end.

3) Resiliência. O Amazon API Gateway ajuda você a gerenciar o tráfego com controle de utilização para que as operações de back-end comportem picos de tráfego. Além disso, o Amazon API Gateway ajuda a aumentar o desempenho das suas APIs e da latência experimentada pelos usuários finais, armazenando a saída das chamadas de API em cache para evitar a interação frequente com o back-end.

4) Monitoramento de operações. Depois da publicação e do uso de uma API, o API Gateway disponibiliza um painel de métricas para o monitoramento de chamadas aos serviços. A integração do painel do Amazon API Gateway com o Amazon CloudWatch oferece métricas de desempenho de back-end, abrangendo chamadas, dados de latência e taxas de erro de APIs. Você pode ativar métricas detalhadas para cada método nas suas APIs, bem como receber logs de erro, de acesso ou de depuração no CloudWatch Logs.

5) Gerenciamento de ciclo de vida. Frequentemente, após a publicação de uma API, é necessário criar e testar novas versões que aprimorem ou adicionem novas funcionalidades. O Amazon API Gateway permite operar várias versões e várias etapas de cada versão de API simultaneamente, possibilitando que aplicações existentes continuem a chamar versões anteriores de uma API após a publicação de novas versões dessa API.

6) Projetado para desenvolvedores. O Amazon API Gateway oferece agilidade na criação de APIs e na atribuição de conteúdo estático a suas respostas, reduzindo o esforço de desenvolvimento entre equipes e o tempo de introdução no mercado das suas aplicações. As equipes que dependem das APIs podem iniciar o desenvolvimento enquanto você cria os processos de back-end.

P: Como faço para começar a usar o Amazon API Gateway?

Você pode criar uma API personalizada com facilidade e rapidez usando o Amazon API Gateway. Siga as etapas a seguir para um exemplo simples de "Hello World":

1.  Acesse o console do Amazon API Gateway.

2.  Selecione uma API REST existente ou crie uma nova inserindo o nome da API.

3.  Na visualização em árvore da API REST, clique em "Create Resource".

4.  Escolha um nome para o recurso, como "carros".

5. Após selecionar o novo recurso, clique no botão para criar um novo método e selecione o verbo HTTP associado ao método (por exemplo, GET).

6.  Selecione o tipo de integração (por exemplo, HTTP Proxy) e insira o URL a ser chamado pelo Amazon API Gateway.

7.  Defina como as solicitações e as respostas são transformadas usando um modelo de mapeamento ou aceite as configurações padrão para passar todos os dados da solicitação e da resposta sem aplicar nenhuma transformação.

8.  Defina as configurações de segurança do método.

9.  Implante a nova API em uma etapa.

10. Na página de gerenciamento de etapas, defina o armazenamento em cache e o controle de utilização.

11. Na guia Plataformas do cliente no console do Amazon API Gateway, clique no botão para fazer o download da biblioteca Android, iOS SDK ou JavaScript que contém os métodos auxiliares para chamar sua operação sayHello. A biblioteca do SDK permite chamar as APIs de forma semelhante à chamada de um método local. O SDK cliente processa automaticamente as novas tentativas, informando condições de falha na rede ou outros tipos de falha ao desenvolvedor. A biblioteca do SDK inclui a lógica necessária para autenticar as aplicações cliente nas APIs.

12. Integre o SDK obtido por download ao seu aplicativo móvel. Escreva o código para invocar a API personalizada. Por exemplo, para invocar a API getCar(int carId) em uma aplicação iOS:

–(void)getSampleCar

{

NSString *response = [MyServiceClient getCar:1323];

NSLog( @"A resposta foi [%@]", response );

}

13. Execute seu aplicativo.

P: Posso criar endpoints HTTPS?

Sim, todas as APIs criadas com o Amazon API Gateway expõem apenas endpoints HTTPS. O Amazon API Gateway não oferece suporte a endpoints não criptografados (HTTP). Por padrão, o Amazon API Gateway atribui um domínio interno à API, que usa automaticamente o certificado do Amazon API Gateway. Na configuração das APIs para execução em um nome de domínio personalizado, você pode fornecer o seu próprio certificado para o domínio.

P: Que tipos de dados posso usar com o Amazon API Gateway?

As APIs criadas no Amazon API Gateway podem aceitar qualquer carga útil enviada usando HTTP. Os formatos de dados comuns incluem JSON, XML, parâmetros de query string e cabeçalhos de solicitação. Você pode declarar qualquer tipo de conteúdo para as respostas da API e usar os modelos de transformação para alterar a resposta do back-end para o formato desejado.

P: Com quais backends o Amazon API Gateway pode se comunicar?

O Amazon API Gateway pode executar funções do AWS Lambda na sua conta, iniciar máquinas de estado do AWS Step Functions ou chamar endpoints HTTP hospedados no AWS Elastic Beanstalk ou no Amazon EC2, bem como operações baseadas em HTTP não hospedadas na AWS, que podem ser acessadas pela Internet. O API Gateway também permite que você especifique um modelo de mapeamento para gerar o conteúdo estático a ser retornado, ajudando você a simular suas APIs antes que o back-end esteja pronto. Você também pode integrar diretamente o API Gateway com outros serviços da AWS. Por exemplo, é possível expor um método de API no API Gateway que envia dados diretamente ao Amazon Kinesis. 

P: Para que plataformas cliente o Amazon API Gateway gera SDKs?

O API Gateway gera SDKs personalizados para desenvolvimento de aplicativos móveis com Android e iOS, assim como para o desenvolvimento de aplicações web com JavaScript. Após definir uma API e seus modelos no API Gateway, você poderá usar o console da AWS ou as APIs do API Gateway para gerar e fazer o download de um SDK cliente.

P: Em que regiões da AWS o Amazon API Gateway está disponível?

Consulte Produtos e serviços regionais para obter detalhes sobre a disponibilidade de serviços do Amazon API Gateway por região.

P: O que posso gerenciar por meio do console do Amazon API Gateway?

Você pode usar o console do Amazon API Gateway para definir as APIs REST e seus recursos e métodos associados, gerenciar o ciclo de vida das APIs, gerar SDKs cliente e visualizar métricas das APIs. Você também pode usar o console do API Gateway para definir seus planos de uso de APIs, gerenciar chaves de API de desenvolvedores e configurar controles e limites de cotas. Todas as mesmas ações estão disponíveis por meio de APIs do API Gateway.

P: O que é uma API REST?

No Amazon API Gateway, uma API REST é um grupo de recursos e métodos, ou seja, endpoints. As APIs REST podem ser implantadas em diferentes etapas e clonadas para novas versões.

P: O que é um recurso?

Um recurso é um objeto tipificado que faz parte do domínio da API. Cada recurso pode ter um modelo de dados, relacionamentos ou outros recursos associados e responder a diferentes métodos.Você também pode definir recursos como variáveis para interceptar solicitações feitas para vários recursos secundários.

P: O que é um método?

Cada recurso em uma API REST pode oferecer suporte a um ou mais métodos HTTP padrão. Para cada recurso, você define os verbos aceitos (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS) e sua implementação. Por exemplo, um GET para o recurso cars deve retornar uma lista de carros. Para conectar todos os métodos de um recurso a um único endpoint de back-end, o API Gateway também oferece compatibilidade com o método "ANY". 

P: O que é um plano de uso?
Os planos de uso ajudam você a apresentar planos para desenvolvedores externos que restringem o acesso a apenas algumas APIs, definem controles e limites de cotas de solicitações, além de associá-los às chaves de API. Você também pode extrair dados de utilização por chave de API para analisar o uso de APIs e gerar documentos de faturamento. Por exemplo, você pode criar planos Basic, Professional e Enterprise. É possível configurar o plano de uso básico para permitir apenas 1.000 solicitações por dia e um máximo de 5 solicitações por segundo (RPS).

P: O que é o ciclo de vida de uma API do Amazon API Gateway?

Com o Amazon API Gateway, cada API REST pode ter várias etapas. O objetivo das etapas é facilitar o ciclo de vida de desenvolvimento de uma API. Por exemplo, após criar as APIs e implantá-las em uma etapa de desenvolvimento, ou quando você estiver pronto para a produção, será possível implantá-las em uma etapa de produção.

P: O que é uma etapa?

No Amazon API Gateway, as etapas são semelhantes a tags. Elas definem o caminho pelo qual a implantação pode ser acessada. Por exemplo, você define uma etapa de desenvolvimento e implanta a API carros nessa etapa. O recurso poderá ser acessado em https://www.myapi.com/desenvolvimento/carros. Você também pode configurar nomes de domínio personalizados que apontam diretamente a uma etapa para evitar o uso do parâmetro adicional de caminho. Por exemplo, se você direcionar myapi.com diretamente para a etapa de desenvolvimento, será possível acessar o recurso carros em https://www.myapi.com/cars. As etapas podem ser configuradas usando variáveis que podem ser acessadas por meio dos seus modelos de configuração ou mapeamento de APIs.

P: O que são variáveis de etapa?
As variáveis de etapa permitem que você defina pares de chave/valor de valores de configuração associados a uma etapa. Esses valores, similarmente às variáveis de ambiente, podem ser usados na sua configuração de API. Por exemplo, você pode definir o endpoint de HTTP para a integração do seu método como uma variável de etapa, e usar a variável na sua configuração de API em vez de codificar o endpoint. Isso permite que você use um endpoint diferente para cada etapa (como dev, beta, prod) com a mesma configuração de API. As variáveis de etapa também podem ser acessadas nos modelos de mapeamento e podem ser usadas para informar parâmetros de configuração para o seu backend do Lambda ou HTTP.

P: O que acontece em caso de implantação indevida em uma etapa?

O Amazon API Gateway registra o histórico das implantações. A qualquer momento, usando as APIs ou o console do Amazon API Gateway, você pode reverter uma etapa para uma implantação anterior.

P: Posso executar várias versões da mesma API REST?

Sim. O Amazon API Gateway oferece o recurso de clonar uma API existente. Quando você estiver pronto para começar a trabalhar na próxima versão principal da API, poderá manter as APIs nas versões 1 e 2 funcionando simultaneamente.

P: Posso usar definições de API do Swagger?

Sim. Você pode usar nossa ferramenta de importador do Swagger de código aberto para importar as definições de APIs do Swagger para o Amazon API Gateway. A ferramenta de importador do Swagger permite criar e implantar novas APIs, bem como atualizar as já existentes.

P: Como posso ganhar dinheiro com APIs no API Gateway?
Você pode ganhar dinheiro com APIs no API Gateway ao publicá-las como produtos no AWS Marketplace. Primeiro, você deverá registrar-se como vendedor no AWS Marketplace e enviar seus planos de uso no API Gateway como produtos. Leia aqui para saber mais sobre como ganhar dinheiro com APIs.

P: Como posso documentar minha API no Amazon API Gateway?

O API Gateway oferece a capacidade de criar, atualizar e excluir a documentação associada a cada porção da sua API, como métodos e recursos. É possível acessar a documentação relacionada às APIs por meio de AWS SDKs, da ILC, via chamadas RESTful ou ao editar strings de documentação diretamente no console do API Gateway. A documentação também pode ser importada como um arquivo Swagger, como parte da API ou separadamente, o que permite que você adicione ou atualize a documentação sem atrapalhar a definição da API. O API Gateway está em conformidade com a especificação OpenAPI para a documentação importada dos arquivos Swagger, bem como exportada para eles.  

P: Como posso evitar a criação de cópias redundantes de mensagens de erro e outros tipos de documentação que se repetem com frequência na minha API?
Além de apoiar a documentação de API em conformidade com os padrões, o API Gateway também apoia a herança de documentos, o que torna simples definir uma string de documentação e usá-la em vários locais. A herança simplifica o processo de definir a documentação de API e pode ser convertida na representação padrão ao exportar a API como um arquivo Swagger.

Voltar ao início >>

P: Como autorizo o acesso às minhas APIs?

Com o Amazon API Gateway, você tem a opção de configurar os métodos de APIs para exigirem autorização. Ao configurar um método para exigir autorização, você pode usar o AWS Signature versão 4 ou autorizadores personalizados compatíveis com a sua própria estratégia de autorização de tokens ao portador.

P: Como funciona o AWS Signature versão 4?

Você pode usar credenciais da AWS (chaves secretas e de acesso) para assinar solicitações enviadas ao seu serviço e autorizar o acesso da mesma forma que com outros serviços da AWS. A assinatura de uma solicitação de API do Amazon API Gateway é gerenciada pelo SDK personalizado do API Gateway gerado para o seu serviço. Você pode recuperar credenciais temporárias associadas a uma função na sua conta da AWS usando o Amazon Cognito.

P: O que é um autorizador personalizado?

Os autorizadores personalizados são funções do AWS Lambda. Com autorizadores de solicitação personalizados, você pode autorizar o acesso às APIs usando uma estratégia de autorização com token ao portador, como OAuth. Quando uma API é chamada, o API Gateway verifica se um autorizador personalizado está configurado. Se estiver, o API Gateway chama a função do Lambda com o token de autorização recebido. Você pode usar o Lambda para implementar diversas estratégias de autorização (por exemplo, verificação JWT, chamadas de provedores de OAuth) que retornam políticas do IAM, usadas para autorizar a solicitação. Se a política retornada pelo autorizador for válida, o API Gateway armazenará em cache a política associada ao token recebido por até uma hora.

P: O Amazon API Gateway pode gerar chaves de API para distribuição a desenvolvedores externos?

Sim. O API Gateway pode gerar chaves de API e associá-las a um plano de uso. As chamadas recebidas de cada chave de API são monitoradas e incluídas no Amazon CloudWatch Logs, que você pode ativar para cada etapa. No entanto, não recomendamos o uso de chaves de APIs para autorização. Você deve usar as chaves de APIs para monitorar o uso por desenvolvedores externos. Para autorização, use um mecanismo de autorização mais robusto, como chamadas de APIs assinadas ou OAuth.

P: Como posso tratar ou evitar ameaças ou abuso de APIs?

O Amazon API Gateway oferece suporte à configuração de controle de utilização em cada método das APIs. Você pode definir um limite de taxa padrão e um limite de taxa de pico por segundo para cada método de uma API REST. Além disso, o Amazon API Gateway protege automaticamente os sistemas de back-end contra ataques distribuídos de negação de serviço (DDoS) oriundos de solicitações falsificadas (camada 7) ou de floods SYN (camada 3).

P: O Amazon API Gateway funciona em uma Amazon VPC?

Não. Os endpoints do Amazon API Gateway são sempre públicos em relação à Internet. Também é necessário que solicitações de operações de backend via proxy possam ser acessadas publicamente na Internet. No entanto, você pode gerar um certificado SSL do cliente no Amazon API Gateway para verificar se as solicitações para os seus sistemas de backend foram enviadas pelo API Gateway usando a chave pública do certificado.

P: Posso verificar se é realmente o API Gateway que está realizando uma chamada para o meu backend?
Sim. O Amazon API Gateway pode gerar um certificado SSL do cliente e disponibilizar para você a chave pública desse certificado. Chamadas para o seu backend podem ser feitas com o certificado gerado, e você poderá verificar chamadas oriundas do Amazon API Gateway usando a chave pública do certificado.

P: Posso usar o AWS CloudTrail com o Amazon API Gateway?

Sim. O Amazon API Gateway é integrado ao AWS CloudTrail para disponibilizar um histórico totalmente auditável das alterações efetuadas nas APIs REST. Todas as chamadas de APIs efetuadas para as APIs do Amazon API Gateway para criar, modificar, excluir ou implantar APIs REST são registradas no CloudTrail da sua conta da AWS.

Voltar ao início >>

P: Como posso monitorar minhas APIs do Amazon API Gateway?

O Amazon API Gateway registra chamadas, latência e taxas de erro de APIs no Amazon CloudWatch da sua conta da AWS. As métricas também são disponibilizadas no console do Amazon API Gateway em um painel de APIs REST. O API Gateway também mensura a utilização por desenvolvedores externos. Os dados são disponibilizados no console do API Gateway e por meio das APIs.

P: Posso definir alertas para as métricas do Amazon API Gateway?

Sim, o Amazon API Gateway envia informações de registro em logs e métricas ao Amazon CloudWatch. Você pode utilizar o console do Amazon CloudWatch para definir alertas personalizados.

P: Como posso definir métricas para o Amazon API Gateway?

Por padrão, o Amazon API Gateway monitora o tráfego por API REST. Opcionalmente, você pode ativar métricas detalhadas para cada método na API REST usando APIs de configuração de implantação ou a tela do console. As métricas detalhadas também são registradas no Amazon CloudWatch e são cobradas usando as taxas do CloudWatch.

P: Posso determinar qual versão da API é usada pelos meus clientes?

Sim. Os detalhes das métricas são especificados por API REST e por etapa. Adicionalmente, você pode ativar métricas para cada método na API REST.

P: O Amazon API Gateway oferece suporte para registro em logs?

Sim. O Amazon API Gateway é integrado ao Amazon CloudWatch Logs. Opcionalmente, você pode ativar o registro em log para cada etapa da API. Em cada um desses métodos, é possível definir a verbosidade do registro em log e se dados completos da solicitação e da resposta devem ser registrados.

P: Com que rapidez os logs são disponibilizados?

Registros, alertas, taxas de erro e outras métricas são armazenados no Amazon CloudWatch e estão disponíveis quase em tempo real.

Voltar ao início >>

P: Como posso proteger sistemas e aplicações de back-end contra picos de tráfego?

O Amazon API Gateway oferece controle de utilização em diversos níveis, incluindo os níveis global e por serviço. Os limites do controle de utilização podem ser definidos para taxas padrão e picos. Por exemplo, os proprietários de uma API podem definir um limite de taxa de 1.000 solicitações por segundo para um método específico nas APIs REST, bem como configurar o Amazon API Gateway para processar picos de 2.000 solicitações por segundo durante alguns segundos. O Amazon API Gateway controla o número de solicitações por segundo. Todas as solicitações acima do limite receberão uma resposta HTTP 429. Os SDKs cliente gerados pelo Amazon API Gateway repetem automaticamente as chamadas quando recebem essa resposta.

P: Posso controlar desenvolvedores individuais chamando minhas APIs?
Sim. Com planos de uso, você pode definir limites de controle para chaves de API individuais.

P: Como o controle de utilização pode ser útil?

O controle de utilização garante o controle do tráfego de APIs para ajudar os serviços de back-end a manter o desempenho e a disponibilidade.

P: Em que níveis o Amazon API Gateway pode controlar a quantidade de tráfego de entrada para as APIs?

Os limites de taxa de controle de utilização podem ser definidos por método. Você pode editar os limites de controle de utilização nas configurações do método usando as APIs do Amazon API Gateway ou o console do Amazon API Gateway.

P: Como as regras de controle são aplicadas?
Primeiro o API Gateway verifica seu limite de conta da AWS. Se o tráfego ficar abaixo do limite de conta definido, o API Gateway verifica o limite que você definiu em uma etapa ou um método. Se o tráfego ficar abaixo do limite da etapa, o API Gateway aplica os limites de plano de uso que você definiu de acordo com a chave de API.

P: O Amazon API Gateway oferece armazenamento em cache para resultados de APIs?

Sim. Você pode adicionar o armazenamento em cache às chamadas de API provisionando um cache do Amazon API Gateway e especificando seu tamanho em gigabytes. O cache é provisionado para uma etapa específica das APIs, aumentando o desempenho e reduzindo o tráfego enviado ao back-end. As configurações de cache permitem controlar como a chave de cache é criada e o time-to-live (TTL) dos dados armazenados para cada método. O Amazon API Gateway também expõe APIs de gerenciamento que ajudam a invalidar o cache de cada etapa.

P: O que acontece se um grande número de usuários finais tentar invocar minha API simultaneamente?

Se o armazenamento em cache não estiver habilitado e os limites de controle não tiverem sido aplicados, todas as solicitações passaram para o seu serviço de back-end, até que os limites de controle no nível da conta tenham sido atingidos. Se os limites de controle tiverem sido implantados, o Amazon API Gateway descartará a quantidade necessária de solicitações e enviará apenas o limite definido para o seu serviço de back-end. Se um cache for configurado, o Amazon API Gateway retornará uma resposta armazenada em cache para solicitações duplicadas durante um período personalizável, mas apenas sob limites de controle de utilização configurados. Esse equilíbrio entre o back-end e o cliente garante o desempenho ideal das APIs para as aplicações compatíveis. As solicitações recusadas pelo controle de utilização serão executadas novamente de forma automática pelos SDKs cliente gerados pelo Amazon API Gateway. Como padrão, o Amazon API Gateway não define nenhum cache nos métodos de API.

P: Como a escala das APIs é alterada?

O Amazon API Gateway atua como um proxy para as operações de back-end configuradas. O Amazon API Gateway altera automaticamente a escala para processar o volume de tráfego recebido pelas APIs. O Amazon API Gateway não limita ou controla arbitrariamente a utilização de invocações de operações de back-end. Todas as solicitações não interceptadas pelas configurações de controle de utilização e de armazenamento em cache no console do Amazon API Gateway são enviadas às operações de back-end.

Voltar ao início >>

P: Como sou cobrado pelo uso do Amazon API Gateway?

As taxas do Amazon API Gateway são 3,50 USD por milhão de chamadas de API, mais o custo da transferência de dados de saída em gigabytes. Se você optar por provisionar um cache para sua API, serão aplicadas taxas horárias. Consulte as páginas de definição de preço do API Gateway para obter detalhes sobre os custos de transferência de dados e de armazenamento em cache.

P: Quem paga pelas chamadas de APIs do Amazon API Gateway geradas por desenvolvedores externos?

O proprietário da API é cobrado pelas chamadas a suas APIs no API Gateway.

P: Se uma resposta de API for atendida por dados do cache, a chamada da API continuará sendo considerada para fins de faturamento?

Sim. Para fins de faturamento, as chamadas de APIs são consideradas iguais tanto para respostas processadas por operações de back-end quanto para respostas processadas pela operação de armazenamento em cache do Amazon API Gateway.

Voltar ao início >>