跳轉到
版本 v1.0.25

Lambda

Lambda 任務讓你在工作流程 (Workflow) 的某個步驟裡,呼叫一個已經部署在 AWS Lambda 上的函式來執行自訂程式碼。當平台內建的任務無法滿足需求(例如要呼叫公司既有的後端邏輯、做特殊運算、串接內部系統)時,可以把那段邏輯寫成 Lambda 函式,再用這個任務把它接進流程。

這頁能幫你做什麼

  • 在工作流程中執行你自己用 AWS Lambda 部署好的函式。
  • 把前一步的資料(或你指定的內容)當成輸入傳給該函式,並把函式回傳結果交給下一步。
  • 重複使用既有的後端程式碼,不必把邏輯搬進平台。

開始前

需要先有可用的 AWS Lambda 函式

這個任務不會幫你建立 Lambda 函式,它只負責「呼叫」。你必須先在 AWS 上部署好函式,並取得它的名稱或 ARN。平台執行環境也需具備呼叫該函式的權限。若不確定權限設定,請與系統管理員確認。

操作步驟

  1. 在工作流程編輯器中新增一個 Lambda 任務(如何新增請見 任務使用指南)。

    Lambda 任務設定面板

  2. 點選節點,右側開啟設定表單,停在「設定」分頁。

  3. 在「名稱」欄位為這個步驟取一個好辨識的名字。
  4. 在「Lambda 函式指定方式」選擇要怎麼指定函式:「從 Lambda 函式資源選取」或「輸入函式名稱或 ARN」(見下方說明),再依選擇填入對應欄位。
  5. 在「傳輸資料」填入要傳給函式的 JSON 內容;可填固定值,也可用 JSONPath(以 $ 開頭)從上一步的輸出動態帶入。
  6. 設定「下一個狀態」,指定這步完成後要前往哪個步驟。
  7. 視需要展開「執行設定」調整進階行為(見下方欄位表)。
  8. 可用表單上方的「測試任務」按鈕()試跑,確認回傳結果符合預期。

完整欄位說明

設定分頁

欄位 必填 預設 說明
名稱 這個步驟在工作流程中的識別名稱,須在同一工作流程內唯一。詳見 任務通用設定
Lambda 函式指定方式 否(恆有預設值) 從 Lambda 函式資源選取 選擇怎麼指定要呼叫的函式,二選一(見下方說明):「從 Lambda 函式資源選取」或「輸入函式名稱或 ARN」。因為一定有預設值,畫面標籤上不會有紅色星號
Lambda 函式 是(指定方式為「從 Lambda 函式資源選取」時) 當指定方式為「從 Lambda 函式資源選取」時出現。選擇一個已建立的 Lambda 函式資源。欄位是下拉選單+右側鉛筆鈕,點鉛筆會開啟資源選擇對話框,選完要按對話框的「儲存」;選取請點該列「名稱」以外的任一格,點「名稱」會另開分頁進到該資源的詳細頁、不會選取它(見資源挑選欄位)。建立方式見 Lambda 函式資源
Lambda 函式名稱 條件 當指定方式為「輸入函式名稱或 ARN」時出現。直接填入要呼叫的 AWS Lambda 函式名稱、版本、別名或完整 ARN。本頁截圖是另一種模式(從資源選取),所以圖上看不到這一欄——要看到它得先把「Lambda 函式指定方式」切成「輸入函式名稱或 ARN」。
傳輸資料 {}(空 JSON 物件) 要傳給 Lambda 函式作為輸入的 JSON 物件。欄位預帶一個空物件 {},不是空白。可填固定 JSON,也可把滑鼠移到欄位上、打開標籤右側出現的「JSONPath」開關從工作流程輸入動態帶入(開關平常隱藏,滑鼠移開就消失,見 任務通用設定)。維持 {} 代表不附帶額外輸入資料。在這裡手寫 JSON 時,動態取值的鍵名結尾一定要加 .$**(例如 { "order.$": "$.order_data" });漏了 .$,平台會把 $.order_data 當成一段普通文字送出去。完整規則見傳遞資料 › 動態取值要在鍵名結尾加 .$
下一個狀態 這步完成後要前往的下一個步驟。詳見 任務通用設定
附註 空白 給這個步驟的備註說明,純記錄用途,不影響執行。

兩種指定函式的方式

「Lambda 函式指定方式」決定你要怎麼告訴平台該呼叫哪個函式:

  • 從 Lambda 函式資源選取 (Select from Lambda Function Resources):選用一個已在平台「資源」中登記好的 Lambda 函式資源(把 AWS Lambda ARN 登記成具名資源)。適合同一個函式會在多個工作流程或工具重複使用的情境,集中管理、不必每次重填 ARN。
  • 輸入函式名稱或 ARN (Enter Function Name or ARN):直接填入函式名稱或完整 ARN,不必先建立資源。適合一次性或臨時呼叫。

請確認函式可被存取

無論採哪種方式,請確認指定的函式在平台執行環境具有呼叫權限。若不確定權限或 ARN,請與系統管理員確認。

執行設定(摺疊區塊)

展開「設定」分頁底部的「執行設定」可看到下列欄位,控制這步實際執行時的行為。這些是各任務共用的項目,完整說明見 任務通用設定

欄位 必填 預設 說明
上傳輸出至外部記憶體 關閉 開啟後這步的輸出改存到外部記憶體,適合輸出資料量很大時使用;開啟後會多出選擇器設定要存哪部分。
在任務開始階段開啟即時輸出串流 關閉 開啟後,任務開始時把任務定義以串流方式即時送到執行頁面顯示。
在任務結束階段開啟即時輸出串流 關閉 開啟後,任務結束時把結果以串流方式即時送到執行頁面顯示。
錯誤時中止 開啟 開啟(預設)代表這步出錯時整個工作流程中止;關閉後改用下方「預設輸出」繼續往下走。
預設輸出 只在關閉「錯誤時中止」時出現,指定出錯時要改用的替代輸出值,讓流程能繼續執行。 它展開後是一組英文標籤的子欄位Errors + 這個任務的輸出欄位),見 預設輸出的子欄位

輸入與輸出、錯誤處理

切到「輸入與輸出」、「錯誤處理」分頁可調整資料流與重試/捕捉規則,這些都是各任務共用設定,完整說明見 任務通用設定

實際範例

假設你有一個名為 calculate-shipping-fee 的 Lambda 函式,會依重量與目的地計算運費。可這樣設定:

  • Lambda 函式名稱calculate-shipping-fee
  • 傳輸資料(手寫整包 JSON,動態取值的鍵名結尾要加 .$):
{
  "weight_kg.$": "$.order.weight",
  "destination.$": "$.order.country"
}

執行時,平台會把上一步輸出中的 order.weightorder.country 帶入,呼叫函式後把回傳結果交給下一步。後續步驟可用 JSONPath(如 $.body.fee)取用回傳內容;實際結構取決於你的 Lambda 實作。

下一步

  • 回到 任務使用指南 了解共用設定與其他任務類型。
  • 若只需在流程內跑簡單的 Python,不必部署到 AWS,改用 Code 任務