使用 Lambda 函數建立 REST API

使用 Lambda 函數建立 REST API

我們有一個由 AWS Lambda 函數組成的 API 提供支援的 Web 應用程式。對於 API,我們有三個環境(prod、staging 和 demo)。我們正在使用以下功能開發功能無伺服器離線函數如下圖所示(總共 84 個函數,每個環境 28 個函數):

生產

  • api-產品函數-1
  • api-產品函數-2
  • api-產品函數-3
  • ETC...

分期

  • api-staging-function-1
  • api-staging-function-2
  • api-staging-function-3
  • ETC...

示範

  • api-演示函數-1
  • api-演示函數-2
  • api-演示函數-3
  • ETC...

根據環境,這些功能連接到我們使用的服務的不同資料庫和不同ENV(即Auth0沙箱和live,Mailgun沙箱和live等)

問題是這些函數超出了最大程式碼儲存限制 75GB。我們使用這個腳本來清理舊版本,但似乎沒有舊版本可供刪除。

所以我的問題是:

  1. 是否可以增加此儲存限制?
  2. 基本上,整個 API 都是基於 lambda 函數建構的,每個端點都會呼叫自己的 lambda 函數。這是 Lambda 的一個很好的用例嗎?

使用的包:

  • 分析節點
  • 授權0
  • AWS SDK
  • 永信
  • 強大
  • jsonwebtoken
  • 克內克斯
  • lambda 多部分解析器
  • lambda-slack-路由器
  • 米迪
  • 片刻
  • 節點郵件程式
  • Nodemailer-mailgun-傳輸
  • 異議
  • PG
  • 掠奪
  • 要求
  • 請求-承諾-本機
  • 無伺服器哨兵
  • 無伺服器哨兵庫
  • 沙1
  • 鬆弛通知
  • uuid
  • 驗證器

僅供參考:最初構建這一切的人已經離開了公司,我必須照顧它直到找到合適人選的人。我在 AWS 方面有一點經驗,所以任何建議都會有很大的幫助。

提前致謝。

答案1

是否可以增加此儲存限制?

是的,您可以為 Lambda 請求更多儲存空間。前往支援中心 --> 選擇Create Case--> 選擇Service Limit Increase--> 限制類型Lambda

在此輸入影像描述

向下捲動到該Requests部分並填寫它,Function and Layer Storage如下圖所示。填寫您的Use Case並提交。

在此輸入影像描述

基本上,整個 API 都是基於 lambda 函數建構的,每個端點都會呼叫自己的 lambda 函數。這是 Lambda 的一個很好的用例嗎?

一般來說,是的,這是 Lambda 的一個非常好的用例。需要注意的是我不知道你的架構或程式碼。有多個參考資料(如下所列)介紹 Lambda 的用例以及如何使用 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

相關內容