我試圖在 Visaul Studio Code 中使用 lambda (python) 的調(diào)試功能。我按照 AWS Docs 上的說明進行操作,但無法在調(diào)試模式下觸發(fā) python 應(yīng)用程序。請看看您是否知道這個問題以及我是否設(shè)置錯誤,謝謝。觀察開始申請似乎應(yīng)用程序未在指定的調(diào)試端口上啟動?請求致電無法到達端點并且未進入python應(yīng)用程序如果通過端口 3000 訪問,應(yīng)用程序可以成功完成已執(zhí)行設(shè)置初始化項目并按照指示安裝ptvsd在 python 代碼上啟用 ptvsd添加啟動配置項目結(jié)構(gòu)Python源碼這基本上只是 python 的官方 helloworld 示例import json# import requestsimport ptvsd# Enable ptvsd on 0.0.0.0 address and on port 5890 that we'll connect later with our IDEptvsd.enable_attach(address=('localhost', 5890), redirect_output=True)ptvsd.wait_for_attach()def lambda_handler(event, context):? ? """Sample pure Lambda function? ? Parameters? ? ----------? ? event: dict, required? ? ? ? API Gateway Lambda Proxy Input Format? ? ? ? Event doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html#api-gateway-simple-proxy-for-lambda-input-format? ? context: object, required? ? ? ? Lambda Context runtime methods and attributes? ? ? ? Context doc: https://docs.aws.amazon.com/lambda/latest/dg/python-context-object.html? ? Returns? ? ------? ? API Gateway Lambda Proxy Output Format: dict? ? ? ? Return doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html? ? """? ? # try:? ? #? ? ?ip = requests.get("http://checkip.amazonaws.com/")? ? # except requests.RequestException as e:? ? #? ? ?# Send some context about this error to Lambda Logs? ? #? ? ?print(e)? ? #? ? ?raise e? ? return {? ? ? ? "statusCode": 200,? ? ? ? "body": json.dumps({? ? ? ? ? ? "message": "hello world",? ? ? ? ? ? # "location": ip.text.replace("\n", "")? ? ? ? }),? ? }
1 回答

慕標琳琳
TA貢獻1830條經(jīng)驗 獲得超9個贊
看來我正在按照文檔的指導(dǎo)方針編輯“python-debugging/hello_world/build”中的python文件(文檔中有一個步驟要求您將python文件復(fù)制到“python-debugging/hello_world/build” )。
但是,當您運行“sam local start-api”時,它實際上在 CloudFormation 模板 (tempalted.yaml) 指定的位置運行 python 文件,該位置位于“python-debugging/hello_world”(檢查“CodeUri”屬性) )。
當我將所有庫移至與 python 文件相同的文件夾時,它就可以工作了。
因此,我想您必須確保正在運行哪個 python(或 lambda)腳本,并確保庫與 python 腳本放在一起(如果您不使用層)。
文件夾結(jié)構(gòu)
在 Visual Studio Code 中進入調(diào)試模式
步驟一:調(diào)用并啟動本地API網(wǎng)關(guān)
服務(wù)器
第 2 步:發(fā)送測試請求
客戶
第 3 步:收到請求、觸發(fā) lambda、待激活 Visual Studio Code 中的調(diào)試模式
服務(wù)器
步驟 4:觸發(fā) Lambda 函數(shù),在 Visual Studio Code 中進入調(diào)試模式
在 IDE 中,打開“運行”透視圖,選擇該文件的啟動配置(“SAM CLI Python Hello World”)。開始調(diào)試。
第5步:單步執(zhí)行函數(shù),返回響應(yīng)
服務(wù)器
客戶
添加回答
舉報
0/150
提交
取消