1450 字
7 分鐘

Cloudflare Workers AI 統一計費怎麼用?先分清 AI Gateway 與 API key

如果你想用一個 Cloudflare 帳務入口支付 Workers AI 與第三方模型,現在可以走 AI Gateway 的 Unified Billing:先在 Cloudflare 帳號載入 credits,再把請求指定到 gateway。這條路徑可以不放供應商 API key,但不代表所有 env.AI.run() 都會自動經過同一個 gateway。

最容易出錯的地方,是把 binding、gateway 與計費模式當成同一件事。實際導入前,先確認請求有帶 gateway ID、Workers AI billing 已切到 Unified billing,並理解 provider key、BYOK 與 Unified Billing 的優先順序。

先把三個控制面分開#

控制面解決的問題不代表什麼
Workers AI bindingWorker 如何呼叫 env.AI.run()不會自動繞過模型方案或帳務條件
AI Gateway請求要走哪個 gateway,以及觀測、快取、限制等入口建立 gateway 不等於所有請求都會使用它
Unified Billing用 Cloudflare credits 支付 Workers AI 與支援的第三方模型不會覆寫請求中明確帶上的 provider 憑證

Cloudflare 的 Unified Billing 文件把它描述為單一 Cloudflare 帳單;目前支援 Workers AI,以及 OpenAI、Anthropic、Google AI Studio 等 provider。實際可用模型仍要以目前的 AI Gateway model catalog 為準,不要把文章裡的 model ID 當成永久清單。

啟用 Unified Billing 的順序#

1. 先載入 credits,再計算實際成本#

Unified Billing 需要先在 Cloudflare 帳號購買並載入 credits。官方文件目前列出每次購買會收取 5% fee;provider 的 inference pricing 會原價轉嫁,不另加 provider markup。這個費用是 credits 購買時的帳務條件,不是「每次 AI.run() 額外加 5%」的程式碼選項。

如果團隊需要成本界線,應同時設定 AI Gateway spend limits,並把 gateway、環境與負責人記在自己的帳務流程中。不要只把「沒有 provider API key」理解成「不需要預算控管」。

2. 把 Workers AI billing 切到 Unified billing#

在 Cloudflare dashboard 的 AI Gateway 設定中,確認 Workers AI Billing 使用 Unified billing,並準備一個要接收請求的 gateway。帳號、gateway 與 Worker 的環境要對得上;多帳號部署時,最常見的錯誤不是 TypeScript,而是本機和 CI 指向不同的 account。

3. 在 AI binding 請求中明確帶 gateway ID#

Workers AI binding 可以在第三個參數指定 gateway:

const result = await env.AI.run(
'openai/gpt-4.1-mini',
{
messages: [{ role: 'user', content: '只回覆 OK' }],
},
{
gateway: { id: 'my-gateway' },
},
)

這段程式只是驗證路徑的最小例子。正式使用前,仍要從 model catalog 確認模型、輸入格式、帳號可用性與價格;不要因為一次最小請求成功,就把該模型永久寫死在產品承諾裡。

如果你的服務走 REST API,概念上則是把 cf-aig-gateway-id header 加到請求。兩種入口都需要明確指定 gateway,否則你測到的可能只是另一條 provider passthrough 路徑。

API key 的優先順序比 gateway 名稱更重要#

Cloudflare 文件目前給出的憑證解析順序如下:

  1. 請求本身帶的 provider authentication,例如 Authorization header。
  2. AI Gateway 中 provider 的 BYOK key,且必須是 default alias。
  3. Unified Billing,由 Cloudflare 管理 provider 憑證並從 credits 扣款。

因此,請求若已帶 provider key,就不會回頭使用 BYOK 或 Unified Billing。另一個容易被忽略的細節是:走 env.AI.run() 或 Unified Billing endpoint 時,只有 default alias 會阻止請求落到 Unified Billing;productiontesting 這類非 default alias 不會在這條路徑自動被選中。

建議把測試記錄成一張小表,而不是只看「有沒有回應」:

測試要確認的結果
不帶 provider key、指定 gateway請求走 Unified Billing,credits 有扣款紀錄
帶明確 provider key請求走該 provider 憑證,不誤算成 Unified Billing
BYOK 使用 default alias確認是否符合預期的 BYOK 路徑
BYOK 只放非 default alias確認不會以為 alias 會自動套用

部署前的最小驗證清單#

先在測試帳號或測試 gateway 跑一個不含敏感資料的 prompt,並依序檢查:

  1. Worker 實際部署的 account 與完成 credits/billing 設定的 account 相同。
  2. 請求中的 gateway ID 確實存在,而且不是只在另一個環境建立。
  3. model 是目前 catalog 的完整 ID,沒有被環境變數或舊分支換掉。
  4. log 只記錄 model、gateway、status 與錯誤 code,不印 prompt、provider key 或完整回應。
  5. 到 dashboard 對照 credits、spend limit 與請求時間,確認測到的確實是預期計費路徑。

如果仍收到 403/5035,先回到 Workers AI 403/5035 的排查順序。Unified Billing 可能提供原本需要付費方案的模型入口,但不會修正錯誤的 model ID、gateway、credits 或帳號;不要看到「有買 credits」就略過最小請求與錯誤碼比對。

把 Workers AI、AI Gateway 與 Unified Billing 分開驗證後,才知道一次請求到底由哪個入口負責、哪筆 credits 被扣除,以及 provider key 是否意外繞過治理設定。這比先把所有 secret 換一輪更容易留下可追蹤的部署證據。

常見問題#

Q: 使用 Unified Billing 一定不需要 provider API key 嗎?#

A: 走 Unified Billing 的 AI binding 或 HTTP API 路徑時,Cloudflare 文件說明可以不需要 provider API key;但如果請求本身帶 provider authentication,或設定了 default BYOK key,就會依優先順序走其他憑證路徑。

Q: credits 的 5% fee 是模型推理費的加成嗎?#

A: 目前文件描述的是 credits 購買時的 5% fee;provider inference pricing 會原價轉嫁,沒有額外 provider markup。實際預算仍要把 credits、模型價格、spend limit 與團隊用量一起估算。

Q: 只建立 AI Gateway 就會自動套用到 Workers AI 嗎?#

A: 不會。AI binding 請求要在第三個參數帶 gateway: { id: '...' };REST API 則要帶 cf-aig-gateway-id。沒有指定 gateway 時,不能假設測試使用了 Unified Billing。

參考資料:

Cloudflare Docs:AI Gateway Unified Billing

Cloudflare Docs:AI Gateway model catalog

Cloudflare Docs:AI Gateway spend limits

Cloudflare Blog:Unifying Workers AI and AI Gateway into a single AI control plane

Cloudflare Workers AI 統一計費怎麼用?先分清 AI Gateway 與 API key
https://laplusda.com/posts/cloudflare-workers-ai-unified-billing/
作者
Zero
發佈於
2026-08-11
許可協議
CC BY-NC-SA 4.0
這篇文章有幫助嗎?

回報錯字、失效連結,或告訴我你想看的延伸主題。