Seleção de um método para invocar a função do Lambda usando uma solicitação HTTP - AWS Lambda

Seleção de um método para invocar a função do Lambda usando uma solicitação HTTP

Muitos casos de uso comuns do Lambda envolvem invocar a função usando uma solicitação HTTP. Por exemplo, talvez você queira invocar uma função diretamente de um navegador da Web ou usar uma ferramenta como curl ou Postman.

As seções a seguir explicam quais são suas opções para invocar o Lambda por meio de HTTP e fornecem informações para ajudar você a tomar a decisão certa para seu caso de uso específico.

Quais são suas opções ao selecionar um método de invocação HTTP?

O Lambda oferece dois métodos principais para invocar uma função usando uma solicitação HTTP: URLs de função e o API Gateway. As principais diferenças entre ambos são as duas opções seguintes:

  • Os URLs de função do Lambda fornecem um endpoint HTTP simples e direto para uma função do Lambda. Eles são otimizados para proporcionar simplicidade e economia e fornecem o caminho mais rápido para expor uma função do Lambda via HTTP.

  • O API Gateway é um serviço mais avançado para criar APIs completas. O API Gateway é otimizado para criar e gerenciar APIs de produção em grande escala e fornece ferramentas abrangentes para segurança, monitoramento e gerenciamento de tráfego.

Recomendações se você já conhece seus requisitos

Se você já sabe quais são seus requisitos, estas são as nossas recomendações básicas:

Recomendamos usar os URLs de funções para aplicações simples ou prototipagem em que você só precisa de métodos básicos de autenticação e tratamento de solicitações/respostas e onde deseja ter o mínimo de custo e a complexidade.

O API Gateway é a melhor opção para aplicações de produção em grande escala ou para casos em que você precisa de recursos mais avançados, como suporte à descrição de OpenAPI, opções de autenticação, nomes de domínio personalizados ou tratamento avançado de solicitações/respostas, incluindo controle de utilização, armazenamento em cache e transformação de solicitação/resposta.

O que considerar ao selecionar um método para invocar a função do Lambda

Ao selecionar entre URLs de função e o API Gateway, você precisa considerar os seguintes fatores:

  • Suas necessidades de autenticação, como se você precisa do OAuth ou do Amazon Cognito para autenticar usuários

  • Seus requisitos de escalabilidade e a complexidade da API que deseja implementar

  • Se você precisa de recursos avançados, como validação de solicitação e formatação de solicitação/resposta

  • Seus requisitos de monitoramento

  • Suas metas de custo

Ao compreender esses fatores, você pode selecionar a opção que melhor equilibra seus requisitos de segurança, complexidade e custo.

As informações a seguir resumem as principais diferenças entre as duas opções.

  • Os URLs de função fornecem opções básicas de autenticação por meio do AWS Identity and Access Management (IAM). Você pode configurar seus endpoints para serem públicos (sem autenticação) ou para exigirem a autenticação do IAM. Com a autenticação do IAM, você pode usar credenciais padrão da AWS ou perfis do IAM para controlar o acesso. Embora seja simples de configurar, essa abordagem oferece opções limitadas em comparação a outros métodos de autenticação.

  • O API Gateway fornece acesso a uma variedade maior de opções de autenticação. Além da autenticação do IAM, você pode usar autorizadores do Lambda (lógica de autenticação personalizada), grupos de usuários do Amazon Cognito e fluxos do OAuth2.0. Essa flexibilidade permite que você implemente esquemas complexos de autenticação, incluindo provedores de autenticação terceirizados, autenticação baseada em tokens e autenticação multifator.

  • Os URLs de função fornecem tratamento básico para solicitações e respostas HTTP. Eles são compatíveis com métodos HTTP padrão e incluem suporte integrado para compartilhamento de recursos de origem cruzada (CORS). Embora consigam lidar com cargas úteis JSON e parâmetros de consulta naturalmente, eles não oferecem recursos de transformação ou validação de solicitações. O tratamento de respostas é igualmente simples: o cliente recebe a resposta da sua função do Lambda exatamente como o Lambda a retorna.

  • O API Gateway fornece recursos sofisticados de tratamento de solicitações e respostas. Você pode definir validadores de solicitações, transformar solicitações e respostas usando modelos de mapeamento, configurar cabeçalhos de solicitação/resposta e implementar o armazenamento em cache de respostas. O API Gateway também oferece suporte a cargas úteis binárias e nomes de domínio personalizados e pode modificar as respostas antes que elas cheguem ao cliente. Você pode configurar modelos para validação e transformação de solicitação/resposta usando o esquema JSON.

  • Os URLs de funções escalam diretamente com os limites de simultaneidade da sua função do Lambda e lidam com picos de tráfego escalando sua função até o limite máximo de simultaneidade configurado. Quando esse limite é atingido, o Lambda responde a solicitações adicionais com respostas HTTP 429. Não há um mecanismo de enfileiramento integrado, portanto, lidar com a escalabilidade depende inteiramente da configuração da sua função do Lambda. Por padrão, as funções do Lambda têm um limite de mil execuções simultâneas por Região da AWS.

  • O API Gateway fornece recursos adicionais de escalabilidade além da própria escalabilidade do Lambda. Ele inclui recursos integrados de enfileiramento e controle de utilização, permitindo que você gerencie os picos de tráfego com mais tranquilidade. Por padrão, o API Gateway pode lidar com até 10 mil solicitações por segundo por região, com uma capacidade de expansão de 5 mil solicitações por segundo. Ele também fornece ferramentas para solicitações de controle de utilização em diferentes níveis (API, estágio ou método) para proteger seu backend.

  • Os URLs de funções oferecem monitoramento básico por meio de métricas do Amazon CloudWatch, incluindo contagem de solicitações, latência e taxas de erro. Você tem acesso às métricas e logs padrão do Lambda, que mostram as solicitações brutas que chegam à sua função. Embora isso forneça visibilidade operacional essencial, as métricas se concentram principalmente na execução da função.

  • O API Gateway fornece recursos abrangentes de monitoramento, incluindo métricas detalhadas, geração de logs e opções de rastreamento. Você pode monitorar chamadas de API, latência, taxas de erro e taxas de acerto/erro de cache por meio do CloudWatch. O API Gateway também se integra ao AWS X-Ray para rastreamento distribuído e fornece formatos de logs personalizáveis.

  • Os URLs de funções seguem o modelo de preços padrão do Lambda: você paga somente pelas invocações de funções e pelo tempo de computação. Não há cobranças adicionais pelo endpoint do URL em si. Isso o torna uma opção econômica para APIs simples ou aplicações com pouco tráfego, caso você não precise dos recursos adicionais do API Gateway.

  • O API Gateway oferece um nível gratuito que inclui um milhão de chamadas de API recebidas para APIs REST e um milhão de chamadas de API recebidas para APIs HTTP. Depois disso, o API Gateway cobra por chamadas de API, transferência de dados e armazenamento em cache (se habilitado). Consulte a página de preços do API Gateway para entender os custos do seu próprio caso de uso.

  • Os URLs de funções são projetados para oferecer simplicidade e integração direta com o Lambda. Eles são compatíveis com endpoints HTTP e HTTPS, oferecem suporte CORS integrado e fornecem endpoints de pilha dupla (IPv4 e IPv6). Embora não tenham recursos avançados, eles se destacam em cenários em que você precisa de uma forma rápida e direta de expor as funções do Lambda via HTTP.

  • O API Gateway inclui vários recursos adicionais, como versionamento de API, gerenciamento de estágios, chaves de API para planos de uso, documentação de API por meio do Swagger/OpenAPI, APIs de WebSocket, APIs privadas em uma VPC e integração com WAF para segurança extra. Ele também oferece suporte a implantações canário, integrações simuladas para testes e integração com outros Serviços da AWS além do Lambda.

Seleção de um método para invocar a função do Lambda

Agora que você sabe conhece os critérios para escolher entre URLs de funções do Lambda e o API Gateway, bem como as principais diferenças entre eles, você pode selecionar a opção que melhor atende às suas necessidades e usar os recursos a seguir para ajudar você a começar a usá-la.

Function URLs
Conceitos básicos para usar URLs de funções com os recursos abaixo
  1. Abra a página de funções do console do Lambda.

  2. Abra o painel de ajuda escolhendo o ícone no canto superior direito da tela.

    Diagrama mostrando a barra de ferramentas do console do Lambda e o ícone do painel de ajuda no canto superior direito
  3. Selecione Tutoriais.

  4. Em Criar um aplicativo Web simples, escolha Iniciar tutorial.

API Gateway
Conceitos básicos para usar o Lambda e o API Gateway com os recursos abaixo