У нас есть веб-приложение, работающее на 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 ГБ. Мы использовали этот скрипт для очистки старых версий, но, похоже, старых версий для удаления больше не осталось.
Итак, мои вопросы:
- Можно ли увеличить этот лимит хранения?
- По сути, весь 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