程式碼¶
程式碼 (Code) 任務讓你直接在工作流程 (Workflow) 的執行環境中跑一段 Python 程式碼。和 Lambda 任務(呼叫外部 AWS 函式)不同,這個任務會在平台內部即時執行你貼上的程式碼,適合做小型資料轉換、計算衍生欄位或寫一段內建 Action 不好表達的處理邏輯。
這頁能幫你做什麼¶
- 用一段 Python 程式碼即時處理、轉換上一步傳來的資料。
- 計算總計、整理欄位、做條件判斷等小型邏輯,不必另外部署到 AWS。
- 在正式抽成 Lambda 或自訂工具之前,快速試做原型。
開始前¶
需要會寫一小段 Python
這個任務要求你提供一個名為 handler 的 Python 函式。它接收一筆資料、處理後回傳結果。若不熟悉 Python、只想原樣傳遞或在傳遞時補欄位,可改用 Pass 任務。
操作步驟¶
-
在工作流程編輯器中新增一個程式碼任務(如何新增請見 Action 使用指南)。

-
點選節點,右側開啟設定表單,停在「設定」分頁。
- 在「名稱」欄位為這個步驟取一個好辨識的名字。
-
在「執行環境」選擇要用「安全模式」還是「進階模式」(預設未選,見下方說明)。

-
選定執行環境後,下方才會出現「程式碼」與「資料」欄位。在「程式碼」編輯器裡撰寫你的
handler函式;也可點編輯器上的產生程式碼()按鈕,用文字描述讓系統協助產生。
-
視需要在「資料」欄位指定要傳進
handler的輸入(可用 JSONPath 從上一步取值,路徑寫法見 JSONPath 語法)。 - 設定「下一個狀態」。
- 可用表單上方的測試按鈕()試跑,確認輸出符合預期。
完整欄位說明¶
設定分頁¶
| 欄位 | 必填 | 預設 | 說明 |
|---|---|---|---|
| 名稱 | 是 | 無 | 這個步驟在工作流程中的識別名稱,須在同一工作流程內唯一。詳見 Action 通用設定。 |
| 執行環境 | 是 | 空白(未選) | 選擇程式碼的執行模式。預設未選任何模式,需先選「安全模式」或「進階模式」,下方的「程式碼」「資料」欄位與產生程式碼鈕才會出現。兩者在功能、效能與安全性上不同,見下方「執行環境選項」。 |
| 程式碼 | 是 | 無 | 要執行的 Python 程式碼。必須定義一個名為 handler 的函式,由它接收輸入資料並回傳結果。相依欄位:先選定「執行環境」後才會出現。也可用編輯器上的產生程式碼()鈕,以文字描述讓系統協助產生。 |
| 資料 | 否 | 這步的輸入 | 要傳進 handler 處理的資料。可填固定 JSON,也可用 JSONPath 從工作流程輸入動態帶入。不填則使用這步收到的輸入。相依欄位:先選定「執行環境」後才會出現。 |
| 下一個狀態 | 是 | 無 | 這步完成後要前往的下一個步驟。詳見 Action 通用設定。 |
| 附註 | 否 | 空白 | 給這個步驟的備註說明,不影響執行。 |
執行環境選項¶
「執行環境」下拉選單預設未選任何模式,有兩個選項可選:
| 選項 | 說明 |
|---|---|
| 安全模式 | 在受限制的 Python 沙箱中執行,僅允許基本語法與內建函式,禁止網路請求、系統指令與檔案存取等高風險操作。適合資料清洗、格式轉換等常見處理,執行較安全穩定,但功能受限。 |
| 進階模式 | 在完整的 Python 執行環境中執行,支援安裝與使用外部套件、進行網路請求、檔案系統操作等進階功能。適合需要高度客製化或整合外部資源的情境,但可能帶來安全風險與不穩定,請確認程式碼來源可信。 |
建議優先用「安全模式」
「進階模式」不會沙箱化你的程式碼。只有在程式碼完全可信、且安全模式缺少所需套件或功能時,才改用進階模式。
執行設定(摺疊區塊)¶
展開「設定」分頁底部的「執行設定」可看到下列共用欄位,完整說明見 Action 通用設定。
| 欄位 | 必填 | 預設 | 說明 |
|---|---|---|---|
| 上傳輸出至外部記憶體 | 否 | 關閉 | 開啟後這步的輸出改存到外部記憶體,適合輸出資料量很大時使用。 |
| 在任務開始階段開啟即時輸出串流 | 否 | 關閉 | 開啟後,任務開始時把任務定義以串流方式即時送到執行頁面顯示。 |
| 在任務結束階段開啟即時輸出串流 | 否 | 關閉 | 開啟後,任務結束時把結果以串流方式即時送到執行頁面顯示。 |
| 錯誤時中止 | 否 | 開啟 | 開啟(預設)代表這步出錯時整個工作流程中止;關閉後改用下方「預設輸出」繼續往下走。 |
| 預設輸出 | 否 | 無 | 只在關閉「錯誤時中止」時出現,指定出錯時要改用的替代輸出值。 |
輸入與輸出、錯誤處理¶
切到「輸入與輸出」、「錯誤處理」分頁可調整資料流與重試/捕捉規則,皆為各 Action 共用設定,完整說明見 Action 通用設定。
實際範例¶
把訂單明細加總,計算小計與品項數量。
- 執行環境:安全模式
- 資料:
$.order - 程式碼:
def handler(data):
items = data.get("items", [])
subtotal = sum(i["price"] * i["quantity"] for i in items)
return {
"order_id": data["order_id"],
"subtotal": subtotal,
"item_count": sum(i["quantity"] for i in items),
}
當這步收到:
{
"order": {
"order_id": "ord-123",
"items": [
{"price": 49.99, "quantity": 2},
{"price": 19.99, "quantity": 1}
]
}
}
handler 會回傳 order_id、subtotal(119.97)與 item_count(3),交給下一步使用。
下一步¶
- 只想注入常數或在傳遞時補欄位 → Pass 任務。
- 邏輯較重、需外部套件或集中部署 → Lambda 任務。
- 回到 Action 使用指南 了解共用設定。