我们有一个由 AWS Lambda 函数组成的 API 支持的 Web 应用程序。对于 API,我们有三个环境(prod、staging 和 demo)。我们使用无服务器离线这些函数如下所示(总共有 84 个函数,每个环境中有 28 个函数):
生产
- api-prod-函数-1
- api-prod-函数-2
- api-prod-函数-3
- ETC...
分期
- api-staging-function-1
- api-staging-函数-2
- api-staging-function-3
- ETC...
演示
- api-演示-功能-1
- api-演示-函数-2
- api-演示-函数-3
- ETC...
根据环境,这些函数连接到我们使用的服务的不同 DB 和不同 ENV(即 - Auth0 沙盒和实时、Mailgun 沙盒和实时等)
问题是这些函数已经超出了 75GB 的最大代码存储限制。我们使用此脚本清理了旧版本,但似乎没有旧版本可以删除。
我的问题是:
- 是否可以增加此存储限制?
- 基本上,整个 API 都是基于 lambda 函数构建的,每个端点都会调用自己的 lambda 函数。这是 Lambda 的一个很好的用例吗?
使用的软件包:
- 分析节点
- 授权0
- aws-sdk
- 埃弗辛
- 强大
- jsonwebtoken
- 克内克斯
- lambda-multipart-parser
- lambda-slack-路由器
- 米迪
- 片刻
- 节点邮件程序
- nodemailer-mailgun-transport
- 异议
- 前列腺素
- 掠夺
- 要求
- 请求-承诺-本机
- 无服务器哨兵
- 无服务器哨兵-lib
- sha1
- slack-notify
- 唯一标识
- 验证器
仅供参考:最初创建这一切的人已经离开了公司,我必须负责照看这一切,直到我们找到合适的人选。我在 AWS 方面有一点经验,所以任何建议都会有很大帮助。
提前致谢。
答案1
是否可以增加此存储限制?
是的,您可以为 Lambdas 请求更多存储空间。转到支持中心 --> 选择Create Case
--> 选择Service Limit Increase
--> 限制类型Lambda
向下滚动到Requests
部分并填写,Function and Layer Storage
如下图所示。填写Use Case
并提交。
基本上,整个 API 都是基于 lambda 函数构建的,每个端点都会调用自己的 lambda 函数。这是 Lambda 的一个很好的用例吗?
总体而言,是的,这是 Lambdas 的一个非常好的用例。但需要注意的是,我不知道您的架构或代码。关于 Lambdas 的用例以及如何使用 Lambda 创建 REST API,有几份参考资料(如下所列)。
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.
参考
在 Amazon API Gateway 中使用 Lambda 集成创建 REST API
使用 Lambda 和 API Gateway 创建简单的微服务
常见 Lambda 应用程序类型和用例
答案2
您是否使用无服务器部署 API 和 Lambda 函数?这是确保它们配置到正确端点的最简单方法,因为您可以将端点内联分配给每个 Lambda。
https://carova.io/snippets/serverless-aws-api-gateway-create-and-deploy-api
然后您可以添加一个 Lambda 函数,如下所示: https://carova.io/snippets/serverless-aws-lambda-function-as-api-gateway-endpoint