簡體   English   中英

AWS Step Functions:在Lambda異常上,獲取原始輸入?

[英]AWS Step Functions: On Lambda exception, get original input?

安裝程序

我有一台AWS狀態機。 我有一個可能返回結果的Lambda,或者可能拋出異常。 該步驟定義了一個catch塊,並根據異常的類型,遵循不同的執行路徑。

問題

但是,我想存儲失敗的Lambda 輸入 ,以便以后可以重新應用它。

失敗的Lambda的輸出是例外。

我試過的

添加OutputPath和ResultPath時,如果它是異常,則不適用。

我真的不想總是拋出自定義異常並附加json輸入,然后解析異常消息。

我嘗試過使用Parallel,將輸入發送到我的Lambda和Pass。 結果是一個帶有Lambda輸出(成功輸出或異常)和原始輸入的數組。 但是,現在我需要添加一個Choice來檢查是否有異常,然后繼續成功輸出,或者用原始輸入分支。 我似乎無法在Choice中定義JsonPath來檢查數組的第一個元素中是否存在“Error”。

您可以使用Catch子句中的ResultPath執行此操作,該子句將異常輸出放在原始輸入下的特定路徑中。

例如:

"Catch": [{ 
  "ErrorEquals": ["States.ALL"], 
  "Next": "NextTask", 
  "ResultPath": "$.error" 
}]

輸入

{"foo": "bar"}

在異常情況下會產生如下輸出:

{
  "foo": "bar",
  "error": {
    "Error": "..."
  }
}

暫無
暫無

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

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