18

我有一個使用node.js express開發的移動應用程序後端。我試過將它部署爲lambda服務。爲此,我創建了一個無服務器框架項目(https://github.com/serverless)。此前我通過啓動快遞後端應用程序在本地測試移動應用程序。現在我無法找到一種方法來在本地測試我的移動應用程序而無需本地後端。我只需要運行一次,我就會調用它。如何在本地測試aws lambda函數

是否有任何方法啓動lambda函數作爲Web服務?還是有沒有其他的無服務器框架?

回答

13

它看起來並不像有辦法現在就這樣做的權利,但版本1.4.0即將發佈,除其他外,它應該包括一個新的命令「大白鯊服務」,這應該解決您的問題。

這裏的PR:https://github.com/jaws-framework/JAWS/pull/269

更新:你現在可以使用新的serverless-serve插件此。

更新2:serverless-serve在一段時間內未更新,現在看起來好像serverless-offline是模擬Lambda函數的更好選擇。

+0

謝謝,可用於無服務器GitHub的頁面不僅用於離線測試,而且還有助於部署和其他很多東西。 –

1

由於1.4還沒有發佈......

上週我需要完全一樣的東西。因此,我創建了一個可以在本地運行一個小的模擬服務器: https://github.com/martinlindenberg/JawsLocalServer

  • 所有頁眉和參數複製到傳遞給處理程序的事件對象。
  • 上下文對象是一個簡單的對象,將數據轉發到響應對象
3

我不知道,如果這個問題仍然是相關的或沒有,但我使用DEEP Framework本地測試代碼, /或將它部署在AWS Lambda上。檢查了這一點:

npm install deepify -g 

deepify run-lambda --help 

    [email protected] - Run Lambda function locally 

    Usage example: deepify run-lambda path/to/the/lambda -e='{"Name":"John Doe"}' 

    Arguments: 
    path: The path to the Lambda (directory of handler itself) 

    Options: 
    --event|-e: JSON string used as the Lambda payload 
    --skip-frontend-build|-f: Skip picking up _build path from the microservices Frontend 
    --db-server|-l: Local DynamoDB server implementation (ex. LocalDynamo, Dynalite) 
    --version|-v: Prints command version 
    --help|-h: Prints command help 

披露:我是貢獻者之一這個框架

+1

無法獲得此工作:/在「啓動lambda」後掛起。 – tedder42

0

由於這個職位的日期,你可以通過做sls function run [name-of-function]本地運行的功能。你的函數event.json中使用的任何json都會被傳入你的函數。

爲了測試您的端點,您還可以使用Serverless Offline這是serverless-serve項目的分支。

+2

'命令「功能」未找到「 – GreenAsJade

1

Bespoken sevrerless plugin,使當地的lambda表達式外部訪問。這對於Postman本地測試以及基於Webhook的服務(如Alexa,Slack,Twilio等)都非常有用。

體系結構如下所示: enter image description here

要使用它,您只需安裝插件,然後運行:

sls proxy 

然後就可以開始在本地將請求發送到您的服務:

enter image description here

我們認爲這是一個非常有用的無服務器測試工具。