簡體   English   中英

如何從遠程調試 AWS Lambda 函數?

[英]How is it possible to debug an AWS Lambda function from remote?

我們正在從另一家公司接管整個應用程序,他們已經構建了整個部署管道,但我們仍然無法訪問它。 我們知道,有一個 lambda 函數正在運行,由某些 SNS 消息觸發,所有代碼都在 Node.js 中,開發是在 VS Code 中。 我們在本地調試它也有問題,但這是一個更大的問題,我們需要遠程調試它。

由於我是 AWS 服務的新手,如果有人能在這方面幫助我,我將不勝感激。 有必要開一個端口嗎? 如何連接到 lambda? 我們需要無服務器來設置嗎? 許多未解決的問題。

我認為沒有辦法可以遠程調試 lambda 函數。 你最好的辦法是在本地機器上下載代碼,設置你在 lambda 函數上設置的環境變量,然后從那里獲取它。

請記住,在一天結束時,lambda 只是一個為您運行代碼的容器。 AWS 不允許任何 ssh 或與這些容器的連接。 在您的情況下,您應該能夠在本地調試它,直到您擁有相同的環境變量。 還有其他一些特定於 lambda 的東西,但考慮到它是您擁有的運行代碼,因此您應該能夠找出問題所在。

希望這是有道理的。

Thundra ( https://www.thundra.io/aws-lambda-debugger ) 通過其原生 IDE 插件(VSCode 和 IntelliJ IDEA)為 AWS Lambda 提供實時/遠程調試支持。

雖然遠非理想,但任何控制台打印操作都可能會記錄到 CloudWatch,然后您可以訪問它以查看打印的數據。

對於本地調試,有許多帶有Dockerfile的 Github 項目,您可以在本地構建一個 docker 容器,就像 AWS 在調用您的 Lambda 時所做的那樣。

AWS 讓您“遠程”調試的方式是通過 Docker 在本地執行 lambda,因為它使用 AWS Toolkit 為您代理對雲的請求。 您有一個通過 docker 在本地計算機上運行的 lambda,它可以訪問雲上的資源,例如數據庫、api 等。您可以使用 vscode 等編輯器逐步調試它們。

我將 SAM 與 template.yaml 一起使用。 這樣,我可以將事件數據傳遞給處理程序、引用依賴層(共享代碼庫)並擁有一個部署清單來創建 Cloudformation 堆棧(發布具有歷史和資源管理的實例)。

調試在編譯、部署到 Docker 和調用時可能會有點慢,但允許逐步調試和變量檢查。

https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-using-debugging.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM