Cloudflare Workflows 2026 計費怎麼算?先盤點 steps 與 state storage
Cloudflare Workflows 原本就會依 Workers 的 requests 與 CPU time 計費,但官方已公告:最早從 2026 年 8 月 10 日起,Workers Paid 會開始計算 steps 與 storage。Free plan 仍有包含額度,且 Cloudflare 表示在公告日期前不會對 steps 與 storage 收費。
這不是把所有 Workflows 都變成付費服務,而是要把每次 step.do()、等待事件,以及持久化的 Workflow state 納入部署前評估。先盤點用量,再決定是否縮短 state retention 或合併不必要的步驟。
先分清楚四個計費維度
Cloudflare Workflows 的 pricing 頁面列出四個維度:CPU time、requests、storage 與 steps。這些指標回答的問題不同,不能只看 Workflow instance 數量推估成本。
| 維度 | 代表什麼 | 盤點方式 |
|---|---|---|
| Requests | 建立新的 Workflow instance 的 invocation | 看建立入口與每日/每月 instance 數 |
| CPU time | Workflow 實際執行的 CPU 毫秒數 | 看 CPU 使用量與高 CPU step |
| Steps | 執行的 step 數,包含等待操作 | 搜尋 step.do()、step.sleep()、step.waitForEvent() |
| Storage | 所有 instance 持久化的 state | 看 instance 數、state 大小與保留時間 |
官方特別說明,step count 不包含 rollback handlers 或 retries;但每個 Workflow 的步驟設計仍會影響執行路徑與 state。要做預估,不能只把程式碼裡出現的 step.do() 乘上 instance 數,還要把條件分支與等待流程列入。
Free 與 Paid 的新額度
目前官方公布的 Workflows steps 與 storage 額度如下:
| 項目 | Workers Free | Workers Paid |
|---|---|---|
| Steps | 每日 3,000 | 每月含 500,000,超過後每 100,000 $0.80 |
| Storage | 含 1 GB-month | 每月含 1 GB,超過後每 GB-month $0.20 |
Paid plan 仍會依 Workers 的標準方式處理 requests 與 CPU time;不能因為 steps 或 storage 有額度,就把整個 Workflow 視為零成本。另一方面,Cloudflare 也說明 Workers Free 在包含額度內不會被收取 steps 與 storage 費用。
若你在 8 月 10 日前做成本試算,請把結果標成「預估」,並記錄 pricing 頁面的版本日期。官方公告使用的是 starting no earlier than August 10,因此不要把它寫成所有帳號一定在同一分鐘切換。
先找出最容易放大用量的 Workflow
在 repository 根目錄做一次靜態盤點:
rg -n \ 'step\.(do|sleep|waitForEvent)|WorkflowInstanceCreateOptions|retention' \ src test tests . \ --glob '!node_modules/**' \ --glob '!dist/**'接著把每個命中點放入三類:
- 高頻短任務:例如 webhook、排程或每次使用者操作都建立 instance。這類任務先看每日/每月 instance 數與固定 steps。
- 長時間等待:使用
step.sleep()或step.waitForEvent(),等待本身不會持續消耗 CPU,但可能讓 state 保留更久。 - 大 state 或長 retention:每個 instance 儲存大量輸出,或保留 errored、completed instance 的時間很長。這一類優先檢查 state 是否真的需要完整保存。
這個盤點的目的不是把所有步驟壓成一個函式。拆成 steps 能提供 retry、durable execution 與觀察性;要縮減的是沒有帶來可驗證邊界、卻反覆執行或保存過多資料的部分。
State retention 是成本與除錯的取捨
Cloudflare pricing 文件說明,storage 會計入 running、errored、sleeping 與 completed instances;預設 state retention 在 Free plan 是 3 天、Paid plan 是 30 天。如果任務完成後不需要長期保留完整 state,可以評估更短的 retention,但要先確認事故排查、重試與稽核需求。
我會在每種 Workflow 寫下這三個問題:
- 失敗的 instance 要保留多久,才足夠重現問題?
- 完成的 instance 是否需要保存完整輸出,還是只留外部資料的識別碼?
- state 裡是否放入不應長期保存的 token、個資或第三方回應?
不要為了少一點 storage 直接刪掉所有錯誤紀錄。先把敏感資料與可重建資料分開,再決定 retention,成本與可觀測性才不會互相犧牲。
8 月 10 日前的驗證清單
- 在 Cloudflare dashboard 查看 Workflows usage,記下目前的 instance、steps 與 state 趨勢。
- 為每個高頻 Workflow 計算一個完整成功流程的 steps,另外標示分支、重試與等待。
- 檢查 state 的平均大小與 retention;不要只看 instance 數量。
- 將 requests、CPU time、steps、storage 分成四欄,避免把不同 SKU 混成單一「每次執行成本」。
- 若要調整步驟或 retention,先在非正式環境驗證失敗恢復、人工等待與 dashboard 資料是否仍足夠。
真正要在 8 月 10 日前完成的,不是把所有 Workflow 重寫,而是知道哪幾個流程會讓 steps 或 state 失去控制,並能用實際 dashboard 數字驗證調整結果。
常見問題
Q: Cloudflare Workers Free 會因為 Workflows steps 和 storage 被收費嗎?
A: 官方公布的額度中,Workers Free 每日含 3,000 steps 與 1 GB storage;Cloudflare 表示 Free plan 不會對額度以外的 steps 與 storage 收費。仍需另外確認 requests、CPU time 與帳號本身的其他產品用量。
Q: step.sleep() 等待很久會一直增加 CPU time 嗎?
A: 不會。Cloudflare Workflows pricing 說明,等待 API 回應、step.sleep() 暫停或其他 idle 狀態不會產生 CPU time;但等待期間的 Workflow state 仍可能影響 storage,因此仍要看 retention 與 state 大小。
Q: retries 會算進 steps 嗎?
A: Cloudflare 的 pricing 文件明確說 step count 不包含 rollback handlers 或 retries。即使如此,retry 仍可能延長執行、增加請求或 CPU 使用量,所以成本盤點不能只看 steps 欄位。
參考資料:
Cloudflare Workflows Changelog:Steps and storage billing to take effect August 10th, 2026
回報錯字、失效連結,或告訴我你想看的延伸主題。