Usando funções Lambda para criar uma API REST

Usando funções Lambda para criar uma API REST

Temos um aplicativo web que é alimentado por uma API composta por funções AWS Lambda. Para a API, temos três ambientes (prod, staging e demo). Estávamos desenvolvendo as funções usandosem servidor offlinee as funções ficam assim (há 84 funções no total, 28 funções em cada ambiente):

Produção

  • api-prod-função-1
  • api-prod-função-2
  • api-prod-função-3
  • etc...

Encenação

  • API-staging-function-1
  • API-staging-function-2
  • API-staging-function-3
  • etc...

Demonstração

  • API-demo-função-1
  • API-demo-função-2
  • API-demo-função-3
  • etc...

De acordo com o ambiente, as funções estão conectadas a diferentes bancos de dados e diferentes ENVs dos serviços que usamos (ou seja - sandbox Auth0 e live, sandbox Mailgun e live, etc.)

O problema é que as funções ultrapassaram o limite máximo de armazenamento de código de 75 GB. Usamos esse script para limpar as versões antigas, mas parece que não há mais versões antigas para excluir.

Então minhas perguntas são:

  1. É possível aumentar esse limite de armazenamento?
  2. Basicamente, toda a API é construída em funções lambda e cada endpoint chama sua própria função lambda. Este é um bom caso de uso do Lambda?

Pacotes usados:

  • nó analítico
  • autorização0
  • aws-sdk
  • eversign
  • formidável
  • jsonwebtoken
  • knex
  • lambda-multipart-parser
  • roteador lambda-slack
  • meio-dia
  • momento
  • nodemailer
  • nodemailer-mailgun-transport
  • objeção
  • pág.
  • Raven
  • solicitar
  • solicitação-promessa-nativa
  • sentinela sem servidor
  • serverless-sentry-lib
  • sha1
  • notificação de folga
  • uuid
  • validador

Para sua informação: A pessoa que construiu tudo isso deixou a empresa e sou eu quem deve cuidar dela até encontrarmos uma pessoa adequada. Tenho um pouco de experiência em AWS, então qualquer conselho seria de grande ajuda.

Desde já, obrigado.

Responder1

É possível aumentar esse limite de armazenamento?

Sim, você pode solicitar mais armazenamento para Lambdas. Vá para o Centro de Suporte --> Selecionar Create Case--> Selecionar Service Limit Increase--> Tipo de LimiteLambda

insira a descrição da imagem aqui

Role para baixo até a Requestsseção e preencha-a Function and Layer Storageconforme visto na imagem abaixo. Preencha o seu Use Casee envie.

insira a descrição da imagem aqui

Basicamente, toda a API é construída em funções lambda e cada endpoint chama sua própria função lambda. Este é um bom caso de uso do Lambda?

De modo geral, sim, este é um caso de uso muito bom para Lambdas. A ressalva é que não conheço sua arquitetura ou código. Existem várias referências (listadas abaixo) sobre casos de uso para Lambdas e como criar APIs REST usando Lambda.

Websites – Suppose you are creating a website and you want to host the backend logic on Lambda. You can invoke your Lambda function over HTTP using Amazon API Gateway as the HTTP endpoint. Now, your web client can invoke the API, and then API Gateway can route the request to Lambda.

Referências

Crie API REST com integrações Lambda no Amazon API Gateway
Crie um microsserviço simples usando Lambda e API Gateway
Tipos comuns de aplicativos e casos de uso do Lambda

Responder2

Você está usando serverless para implantar suas funções API e Lambda? Essa é a maneira mais fácil de garantir que eles sejam provisionados no endpoint correto, já que você pode atribuir os endpoints a cada Lambda inline.

https://carova.io/snippets/serverless-aws-api-gateway-create-and-deploy-api

Então você adicionaria uma função Lambda como aqui: https://carova.io/snippets/serverless-aws-lambda-function-as-api-gateway-endpoint

informação relacionada