直接從程式碼執行和偵錯 Lambda 函數 - AWS Toolkit for VS Code

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

直接從程式碼執行和偵錯 Lambda 函數

測試AWS SAM應用程式時,您可以選擇只執行和偵錯 Lambda 函數,並排除AWS SAM範本定義的其他資源。此方法涉及使用此CodeLens功能,在您可以直接叫用的原始程式碼中識別 Lambda 函數處理常式。

偵測到的 Lambda 處理常式 CodeLens 取決於您用於應用程式的語言和執行階段。

語言/執行時間 由指標識別 Lambda 函數的 CodeLens標準

C#(網絡核心 2.1,3.1;. NET 5.0)

函式具備以下特性:
  • 這是一個公共類的公共功能。

  • 它有一個或兩個參數。使用兩個參數,第二個參數必須實現接ILambdaContext口。

  • 它在 VS Code 工作區資料夾內的父資料夾中有一個*.csproj檔案。

已安裝並啟用 ms-dotnettools.csharp 副檔名 (或任何提供 C# 語言符號的擴充功能)。

JavaScript/TypeScript (Node.js 12. x, 14 倍)

函式具備以下特性:
  • 它是經過匯出的函式,最多有三個參數。

  • 它在 VS Code 工作區資料夾內的父資料夾中有一個package.json檔案。

Python (3.7, 3.8, 3.9, 三十一, 三)

函式具備以下特性:
  • 它是最上層函數。

  • 它在 VS Code 工作區資料夾內的父資料夾中有一個requirements.txt檔案。

已安裝並啟用 ms-pyth.python 擴充功能 (或任何為 Python 提供語言符號的擴充功能)。

爪哇文 (8, 八月二, 11)

函式具備以下特性:
  • 這是一個公共的,非抽象類的公共功能。

  • 它有一個,兩個或三個參數:

    • 一個參數:參數可以是任何東西。

    • 兩個參數:參數必須是 a java.io.InputStreamjava.io.OutputStream OR,最後一個參數必須是com.amazonaws.services.lambda.runtime.Context.

    • 三個參數:參數必須是 a java.io.InputStream java.io.OutputStream 和 AND,最後一個參數必須是com.amazonaws.services.lambda.runtime.Context.

  • 它在 VS 代碼工作區文件夾中的父文件夾中有一build.gradlepom.xml(Gradle)或(Maven)文件。

已安裝並啟用 redhat.java 擴充功能 (或為 Java 提供語言符號的任何擴充功能)。無論您使用哪個 Java 運行時,此擴展都需要 Java 11。

vscjava。 vscode-java-debug已安裝並啟用擴充功能 (或任何提供 Java 偵錯工具的擴充功能)。

圍棋 (1. 倍)

函式具備以下特性:
  • 它是最上層函數。

  • 它需要 0 和 2 個參數之間。如果有兩個引數,第一個引數必須實作 context.Context

  • 它返回 0 和 2 個參數之間。如果有超過 0 個參數,則必須實現最後一個參數error

  • 它在 VS 代碼工作區go.mod文件夾中有一個文件。

隨即安裝、設定和啟用了 golang.go 擴充功能。

如何從應用程式程式碼直接執行與除錯無伺服器應用程式

  1. 若要在 VS 程式碼檔案總管中檢視應用程式檔案,請選擇 [檢視] > [檔案總管]

  2. 從應用程式資料夾 (例如,my-sample-app),展開函式資料夾 (在本例中為 hello-world),然後app.js開啟檔案。

  3. 在識別合格 Lambda 函數處理常式的 CodeLens 指標中,選擇Add Debug Configuration

    存取 Lambda 函數處理常式 CodeLens 指標中的「新增除錯組態」選項。
  4. 命令調色盤中,選取AWS SAM應用程式將在其中執行的執行階段。

  5. launch.json 檔案的編輯器中編輯或確認下列組態屬性的值:

    • "name" – 輸入方便識讀的名稱,讓它顯示在 Run (執行) 檢視的 Configuration (組態) 下拉式欄位中。

    • "target" – 確認值為 "code",以便直接叫用 Lambda 函式處理常式。

    • "lambdaHandler" – 輸入程式碼中所用方法的名稱,Lambda 會呼叫此程式碼來叫用您的函數。例如,對於中的應用程式 JavaScript,預設值為app.lambdaHandler

    • "projectRoot" – 為包含 Lambda 函式的應用程式輸入檔案路徑。

    • "runtime" – 輸入或確認 Lambda 執行環境的有效執行時間,例如 "nodejs.12x"

    • "payload" – 選擇下列其中一個選項來定義您想要提供給 Lambda 函式作為輸入的事件酬載:

      • "json":定義事件酬載的 JSON 格式金鑰數值組。

      • "path":作為事件酬載的檔案的路徑。

      在下面的範例中,選"json"項定義有效負載。

    設定launch.json檔案以直接叫用 Lambda 函數。

    如需詳細了解 launch.json 檔案中的上述與其他項目,請參閱 除錯無伺服器應用程式的組態選項

  6. 如果您對調試配置感到滿意,要開始調試,請選擇 RUN 旁邊的綠色播放箭頭。

    偵錯工作階段啟動時,「除錯主控台」面板會顯示除錯輸出,並顯示 Lambda 函數傳回的任何值。除錯AWS SAM應用程式時,會在「出」面板中選取「AWS工具組」作為「輸出」通道。)