Использование лямбда-функций для создания REST API

Использование лямбда-функций для создания REST API

У нас есть веб-приложение, работающее на API, состоящем из функций AWS Lambda. Для API у нас есть три среды (prod, staging и demo). Мы разрабатывали функции с помощьюбезсерверный-офлайни функции выглядят так (всего 84 функции, по 28 функций в каждой среде):

Производство

  • api-prod-функция-1
  • api-prod-функция-2
  • api-prod-function-3
  • и т. д...

Постановка

  • api-staging-function-1
  • api-staging-function-2
  • api-staging-function-3
  • и т. д...

Демо

  • api-demo-function-1
  • api-demo-function-2
  • api-demo-function-3
  • и т. д...

В зависимости от среды функции подключаются к разным базам данных и разным средам используемых нами сервисов (например, Auth0 sandbox и live, Mailgun sandbox и live и т. д.)

Проблема в том, что функции превысили максимальный лимит хранения кода в 75 ГБ. Мы использовали этот скрипт для очистки старых версий, но, похоже, старых версий для удаления больше не осталось.

Итак, мои вопросы:

  1. Можно ли увеличить этот лимит хранения?
  2. По сути, весь API построен на лямбда-функциях, и каждая конечная точка вызывает свою собственную лямбда-функцию. Является ли это хорошим вариантом использования Lambda?

Используемые пакеты:

  • аналитика-узел
  • auth0
  • aws-sdk
  • вечносозданное
  • грозный
  • jsonwebtoken
  • кнекс
  • лямбда-multipart-parser
  • лямбда-slack-маршрутизатор
  • мидди
  • момент
  • nodemailer
  • nodemailer-mailgun-транспорт
  • возражение
  • стр.
  • ворон
  • запрос
  • запрос-обещание-родной
  • serverless-сентри
  • serverless-sentry-lib
  • ша1
  • Slack-уведомление
  • uuid
  • валидатор

FYI: Человек, который все это построил, покинул компанию, и мне придется за всем присматривать, пока мы не найдем подходящего человека. У меня есть небольшой опыт работы в AWS, поэтому любой совет будет очень полезен.

Заранее спасибо.

решение1

Можно ли увеличить этот лимит хранения?

Да, вы можете запросить больше места для хранения Lambdas. Перейдите в Центр поддержки --> Выбрать Create Case--> Выбрать Service Limit Increase--> Тип ограниченияLambda

введите описание изображения здесь

Прокрутите вниз до Requestsраздела и заполните его так, Function and Layer Storageкак показано на изображении ниже. Заполните Use Caseи отправьте.

введите описание изображения здесь

По сути, весь API построен на лямбда-функциях, и каждая конечная точка вызывает свою собственную лямбда-функцию. Является ли это хорошим вариантом использования Lambda?

В общем, да, это очень хороший вариант использования Lambdas. С оговоркой, что я не знаю вашу архитектуру или код. Есть несколько ссылок (перечисленных ниже) по вариантам использования Lambdas и по созданию REST API с использованием 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.

Рекомендации

Создание REST API с помощью интеграции Lambda в Amazon API Gateway
Создайте простой микросервис с использованием Lambda и API Gateway
Распространенные типы приложений Lambda и варианты их использования

решение2

Используете ли вы serverless для развертывания API и функций Lambda? Это самый простой способ убедиться, что они предоставлены правильной конечной точке, поскольку вы можете назначить конечные точки для каждой Lambda inline.

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

Затем вы добавляете лямбда-функцию, как здесь: https://carova.io/snippets/serverless-aws-lambda-function-as-api-gateway-endpoint

Связанный контент