簡體   English   中英

AWS Lambda Python 腳本。 如何返回對象並保持 scipt 在后台運行?

[英]AWS Lambda Python script. How do I return an object and keep the scipt running in the background?

我有一個由發布請求觸發的 AWS lambda 腳本。 該腳本大約需要 10 分鍾才能運行。 當收到 POST 請求/觸發器時,我想在運行腳本之前/同時返回一個 guid/標識符。 這樣,用戶可以使用該 guid 通過我尚未創建的 db 配置來檢查腳本的進度。 我的問題是,當我的 lambda_handler 給出返回對象時,腳本停止運行。 我想返回 guid,並保持腳本運行。

你不能只用 lambda 函數做到這一點。 如果您想實現您的目標,您必須將 Lambda 與 Step Functions 結合使用來構建完整的工作流程:

https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html

你必須把你的 lambda 分成兩部分。 第一個返回 guid/標識符。 另一個在第一個 lambda 返回結果后繼續處理邏輯。

Step Functions 配置示例:

{
  "StartAt": "LambdaFunction1",
  // The first lambda that return the guid/identifier
  "States": {
    "LambdaFunction1": {
      "Type": "Task",
      "Resource": "arn:aws:lambda1:here",
      "Next": "LambdaFunction2"
    },
    "LambdaFunction2": {
      "Type": "Task",
      "Resource": "arn:aws:lambda2:here",
      "End": true
    }
  }
}

暫無
暫無

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

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