Cloudflare生產工作流之:Wrangler開發指南

作者:老馬玩AI
日期:2025年9月15日 下午10:53
來源:WeChat 原文

整理版優先睇

速讀 5 個重點 高亮

WranglerCloudflare 生態系統的核心 CLI 工具,掌握其開發工作流是實現高效 Serverless 運維的關鍵。

  • Wrangler 負責連接本地開發環境與 Cloudflare 全球網絡,涵蓋 Workers 計算、D1 數據庫及 R2 存儲的管理。
  • 推薦將 Wrangler 作為項目本地依賴(devDependency)安裝,以確保團隊版本一致性並避免全局環境衝突。
  • 核心開發流程依賴 wrangler dev 進行高保真本地仿真測試,並透過 wrangler deploy 實現多環境(Staging/Prod)部署。
  • 資源綁定(Bindings)機制將數據庫與存儲對象直接注入代碼 env 參數,實現安全且高效的資源調用。
  • 生產環境應嚴格使用 CI/CD 流水線,配合範圍受限的 API Token 進行自動化部署,而非手動操作。
值得記低
流程

GitHub Actions 自動部署工作流

在推送到主分支時自動執行測試並部署 Worker 到生產環境的 YAML 配置樣板。

工具 github.com

S3FileManager

支持 Cloudflare S3 API 的圖形化工具,解決 R2 目前缺乏原生目錄批量上傳功能的問題。

整理重點

環境配置與身份驗證:穩健開發的第一步

在 Cloudflare 的開發者生態中,Wrangler 不只是個工具,它是連接本地代碼與全球邊緣網絡的橋樑。官方強烈建議將其安裝為本地依賴,而非全局安裝,這能有效避免「我部機行到,你部機行唔到」的經典版本衝突問題。

程式內容 bash
npm i -D wrangler@latest

# 驗證安裝
npx wrangler --version
整理重點

核心開發流:從初始化到全球部署

使用 C3 (create-cloudflare-cli) 可以快速生成項目骨架。開發過程中,wrangler dev 是你的好戰友,它提供的實時重載(Live Reloading)能極速縮短反饋週期。

本地開發時,Wrangler 會自動為 D1、R2 創建基於文件的模擬實現,讓你可以在完全離線的情況下完成全棧開發。

當準備好上線時,透過環境標誌進行精準部署:

程式內容 bash
npx wrangler deploy --env production
整理重點

精通資源綁定與數據庫遷移

wrangler.toml 是項目的「事實來源」。在這裡定義的 Bindings 會變成代碼中的實時對象,而不是簡單的字符串密鑰。

wrangler.toml 配置範例 toml
[[d1_databases]]
binding = "DB"
database_name = "my-db"
database_id = "xxxx-xxxx"

[[r2_buckets]]
binding = "MY_BUCKET"
bucket_name = "my-assets"
整理重點

戰略建議:將 Wrangler 融入 CI/CD

對於專業團隊,手動部署是禁忌。應將部署邏輯封裝進 GitHub Actions 等流水線中。以下是一個標準的自動化部署配置:

GitHub Actions 部署模板 yaml
name: Deploy Worker
on:
  push:
    branches: [main]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Install & Deploy
        run: |
          npm ci
          npx wrangler deploy --env production
        env:
          CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}

第一部分:基礎概念與初始設置

在Cloudflare開發生態系統中,wrangler佔有核心地位。今天我們來學習和了解一下wrangler這款常用工具。涉及:wrangler的安裝、配置和驗證wrangler,可以用來操作Workers(計算)、D1(數據庫)、 R2(對象存儲)和KV等。

1.1 Cloudflare 開發者生態系統簡介

圖片

Cloudflare的開發者平台圍繞其無服務器(Serverless)計算服務構建,其核心支柱包括:Workers(計算)、D1(數據庫)和 R2(對象存儲)。這個平台旨在讓開發者能夠將應用程序部署到 Cloudflare 的全球網絡上,使其更接近終端用戶,從而實現極致的性能和低延遲。

在這一生態系統中,wrangler 扮演着不可或缺的角色。它是一個功能強大的命令行界面(CLI)工具,是連接開發者本地環境與 Cloudflare 全球網絡的橋樑。無論是構建新的 Worker、管理數據庫模式,還是上傳靜態資源,wrangler 都是用於編排、測試和部署這些服務的首選工具。對於任何希望在 Cloudflare 平台上構建應用的團隊來說,精通 wrangler 是邁向高效開發和運維的第一步。

1.2 Wrangler 安裝與環境配置

在開始使用 wrangler 之前,必須確保開發環境滿足特定的系統要求。這包括受支持的Node.js 版本(CurrentActiveMaintenance)和操作系統(macOS 13.5+Windows 11、支持 glib 2.35+  Linux 發行版)。

官方強烈推薦將 wrangler 作為每個項目的本地開發依賴項(devDependency)進行安裝,而不是全局安裝。這種做法具有顯著優勢:

  • 版本一致性:通過將 wrangler 版本鎖定在項目的 package.json 文件中,可以確保團隊中的每位成員以及 CI/CD 環境都使用完全相同的工具版本,從而消除因版本不匹配導致的“在我機器上可以運行”的典型問題。

  • 項目隔離:避免了不同項目可能依賴不同 wrangler 版本而產生的全局衝突。

  • 可復現的構建:為創建可靠且可復現的構建環境奠定了基礎。

安裝命令如下:

npm i -D wrangler@latest

wrangler 在項目本地安裝後,所有命令都需要通過 npx 來執行,例如 npx wrangler dev。這種從全局安裝向本地安裝的轉變,反映了JavaScript 生態系統中開發最佳實踐的成熟,即傾向於項目依賴的封裝和隔離,這對於專業的 DevOps 流程至關重要。

備選安裝方法(供參考)

儘管不作為首選,但在某些特定場景下,其他安裝方法也可能適用:

  • 全局 NPM 安裝npm i -g @cloudflare/wrangler

  • Homebrew (macOS)brew install cloudflare-wrangler

  • Cargo (Rust)cargo install wrangler,這種方法尤其適用於基於 ARM 的系統。

驗證安裝

無論採用何種安裝方式,都可以通過以下命令來檢查 wrangler 的版本,以確認安裝成功:

npx wrangler --version

圖片


1.3 身份驗證:將 Wrangler 連接到您的 Cloudflare 賬户

wrangler提供了多種身份驗證機制,以適應從本地交互式開發到全自動 CI/CD 流水的不同需求。

身份驗證wrangler login (OAuth)

wrangler login 是現代化、安全且官方推薦的身份驗證方法。它通過啓動一個 OAuth 2.0 流程,自動打開瀏覽器,引導用戶登錄其 Cloudflare 賬户並授予 wrangler 必要的權限。授權成功後,一個具備適當權限的 API 令牌會自動存儲在本地配置文件中,供後續命令使用。這個流程對開發者極為友好,且無需手動處理敏感的 API 密鑰。

驗證身份
wrangler whoami
圖片
執行 wrangler login 後,運行 wrangler whoami 是一個關鍵的驗證步驟。該命令會顯示當前已驗證的用戶信息和賬户詳情,為開發者提供了即時反饋,確認本地 CLI 已成功連接到正確的 Cloudflare 賬户
較舊的方法:wrangler config (API 密鑰)

wrangler config 是一種較舊的驗證方法,它要求用戶手動提供 Cloudflare 賬户郵箱和全局 API 密鑰(Global API Key)。由於全局 API 密鑰擁有賬户範圍內的廣泛權限,這種方法存在較大的安全風險,因此官方已不推薦使用。瞭解此方法主要是為了兼容舊有項目或文檔。

高級身份驗證:CI/CD 與無頭環境

在自動化環境(如 CI/CD 流水線)中,無法進行交互式登錄。此時,必須採用非交互式的驗證方式。標準做法是使用環境變量 CLOUDFLARE_API_TOKEN。開發者可以在 Cloudflare 儀表盤中創建一個具有精確範圍權限(例如,僅“編輯 Workers”)的 API 令牌,然後將此令牌作為機密信息存儲在 CI/CD 系統的環境變量中

wrangler會自動檢測並使用此環境變量進行驗證。

這種上下文相關的身份驗證策略是專業開發的核心:

 交互式開發會話:應使用 wrangler login,以獲得最佳的安全性和用戶體驗。

 自動化系統必須使用通過 CLOUDFLARE_API_TOKEN 環境變量提供的範圍受限的 API 令牌,以確保安全性和非交互性。

對於更復雜的遠程開發環境(如在遠程服務器或容器中開發),社區也探索出了通過 curl 手動完成 OAuth 回調的方法,以應對 wrangler login 無法直接打開本地瀏覽器的挑戰。

第二部分:核心開發與部署工作流

本部分將引導用戶完成一個標準 Cloudflare Worker 項目從創建、本地開發到最終部署的全過程。

2.1 項目初始化與結構

使用 create-cloudflare-cli (C3) 創建項目

開始一個新項目的最主要方式是使用 create-cloudflare-cli (C3),這是一個官方提供的腳手架工具,能夠快速生成項目模板。執行以下命令即可啓動:

npm create cloudflare@latest

在交互式設置過程中,C3 會引導用戶完成一系列選擇,例如選擇 "Hello World"模板、開發語言(JavaScript  TypeScript)以及是否初始化 Git 倉庫等。

C3 會生成一個結構清晰的項目目錄,其中包含以下關鍵文件:

wrangler.toml/wrangler.jsonc:項目的核心配置文件,定義了Worker 的名稱、入口點、兼容性日期、路由和資源綁定等。
src/index.ts(或.js):Worker 的代碼入口文件。
package.json:管理項目依賴,包括本地安裝的wrangler。
.git/:如果選擇,則會初始化為Git倉庫。
備選方案:wrangler init

對於已有的項目目錄,如果只想在其中添加 wrangler 的配置文件,可以使用 wrangler init 命令。它只會在當前目錄創建一個 wrangler.toml 文件,而不會生成完整的項目腳手架。

2.2 使用 wrangler dev 進行本地開發

wrangler dev 是本地開發流程中的核心命令。它會啓動一個本地開發服務器,該服務器能夠高度仿真 Cloudflare Workers 的真實運行環境,從而實現快速的開發和測試。

該服務器最關鍵的特性之一是實時重載Live Reloading)。當開發者修改並保存代碼文件時,本地服務器會自動重新加載 Worker,立即反映出代碼變更,極大地縮短了開發反饋週期。

默認情況下,本地 Worker 可以通過 http://localhost:8787 訪問。此外,wrangler dev 會自動為 D1R2KV 等資源創建本地的、基於文件的模擬實現。這意味着開發者可以在完全離線的環境中進行全棧開發,而無需在早期階段連接到遠程的生產或預演資源。

2.3 使用 wrangler deploy 進行部署

當本地開發和測試完成後,wrangler deploy 命令用於將 Worker 發佈到 Cloudflare 的全球網絡上 。

默認情況下,該命令會根據 wrangler.toml 文件中的頂級配置進行部署。然而,在專業的開發流程中,通常會定義多個環境(例如,staging  production)。通過使用 --env 標誌,可以將 Worker 部署到指定的環境,例如 npx wrangler deploy --env production

部署成功後,wrangler 會在終端輸出 Worker 的公共訪問 URL,通常是 *.workers.dev 子域或開發者配置的自定義路由。

 1:核心命令快速參考

為了便於快速查閲,下表總結了本部分介紹的最核心的 wrangler 命令。

命令

用途

示例語法

npm create cloudflare@latest

創建一個新的 Cloudflare 項目(WorkerPages 等)。

npm create cloudflare@latest   my-worker

npx wrangler dev

啓動一個帶有實時重載功能的本地開發服務器。

npx wrangler dev

npx wrangler deploy

將項目部署到 Cloudflare 網絡。

npx wrangler deploy --env   production

npx wrangler login

使用您的 Cloudflare 賬户對 CLI 進行身份驗證。

npx wrangler login

npx wrangler whoami

檢查當前已驗證的用戶和賬户。

npx wrangler whoami

npx wrangler tail

從已部署的 Worker 實時流式傳輸日誌。

npx wrangler tail

第三部分:精通 wrangler.toml 配置

wrangler.toml(或 wrangler.jsonc)是所有 wrangler 管理的項目的聲明式“事實來源”(source of truth)。深入理解其配置選項是掌握 Cloudflare 開發的關鍵。

3.1 配置文件結構解析

wrangler同時支持 TOML (wrangler.toml)  JSONC (wrangler.jsonc) 格式,其中 JSONC 是新項目的推薦格式。

一些最重要的頂級配置項包括:
name:Worker腳本的名稱。
main:指向Worker入口文件的路徑,例如./src/index.ts
compatibility_date:這是一個至關重要的設置,它將Worker的運行時環境鎖定到特定版本的Workers API。這確保了向後兼容性,防止因平台API更新而導致現有代碼中斷。
account_id:發佈Worker 所需的Cloudflare 賬户ID

路由配置

可以通過 workers_dev = true 啓用默認的 *.workers.dev 子域,或者通過 route 字段將 Worker 綁定到自定義域上的特定路由模式。

3.2 資源綁定:平台的連接組織

綁定(Bindings 是 Cloudflare 平台的一個核心概念。它是一種機制,用於授權 Worker 與其他 Cloudflare 資源(如 D1 數據庫、R2 存儲桶、KV 命名空間等)進行交互。至關重要的是,綁定不僅僅是包含密鑰的環境變量;它們是被注入到 Worker  env 參數中的實時對象,為訪問這些資源提供了一個直接、經過身份驗證的 API

D1 數據庫綁定

要將一個 D1 數據庫綁定到 Worker,需要在 wrangler.toml 中進行如下配置,指定一個 binding 名稱(在代碼中使用的變量名)、database_name  database_id

[[d1_databases]]
binding = "DB"# 在代碼中通過 env.DB 訪問
database_name = "my-production-db"
database_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

R2存儲桶綁定

綁定 R2 存儲桶的語法類似,需要一個 binding 名稱和 bucket_name

[[r2_buckets]]
binding = "MY_BUCKET"# 在代碼中通過 env.MY_BUCKET 訪問
bucket_name = "my-asset-bucket"

3.3管理環境與密鑰

環境 ([env.*])

wrangler.toml支持通過 [env.staging][env.production] 等節來為不同的部署環境定義不同的配置。

配置繼承規則

環境會繼承頂級的配置項,但也可以覆蓋它們。這裏存在一個極其重要的設計決策:綁定(bindings)和變量(vars)是不可繼承的。這意味着每個環境都必須顯式地定義其所需的綁定和變量。這種設計並非不便,而是一項關鍵的安全特性。它強制要求開發者為每個環境進行明確的配置,從而從根本上防止了因配置疏忽(例如,開發環境意外回退使用生產數據庫)而導致的數據污染或泄露。這種設計強制實現了環境之間的嚴格隔離,是 DevOps 最佳實踐的體現。

密鑰管理

對於 API 密鑰等敏感數據,絕不應以明文形式存儲在 wrangler.toml 中。正確的做法是使用 wrangler secret 命令集(put, delete, list)。通過 npx wrangler secret put <KEY_NAME> 添加的密鑰會被加密存儲,並在運行時作為環境變量注入到 Worker 中,從而實現了安全的密鑰管理

第四部分:Cloudflare 服務的實用工作流(用戶核心請求)

本部分提供了用戶在遷移過程中最需要的具體、可直接使用的命令序列,涵蓋 D1 數據庫、R2 存儲和Workers 的管理。

4.1 管理 Cloudflare D1 數據庫

wrangler提供了一套完整的 d1 子命令,用於管理 D1 數據庫的整個生命週期。

數據庫生命週期管理

 創建新數據庫npx wrangler d1 create <DATABASE_NAME>

 列出已有數據庫npx wrangler d1 list

 獲取數據庫信息npx wrangler d1 info <DATABASE_NAME>

 刪除數據庫npx wrangler d1 delete <DATABASE_NAME>

模式遷移:DevOps 工作流

在生產環境中,直接執行 SQL 語句來修改數據庫模式是不可靠且難以追蹤的。正確的方式是使用遷移(Migrations,它允許以版本控制的方式管理數據庫模式的演變。

 第一步:創建遷移文件
執行 

 npx wrangler d1 migrations create <DATABASE_NAME> <MIGRATION_MESSAGE>

例如 

npx wrangler d1 migrations create my-db create_users_table

這會在項目的 migrations/ 目錄下生成一個新的 .sql 文件,開發者可以在其中編寫 DDL 語句。

 第二步:列出待處理的遷移
使用 npx wrangler d1 migrations list <DATABASE_NAME> 可以查看哪些遷移尚未被應用。

 第三步:應用遷移
這是最關鍵的一步,wrangler 允許分別對本地和遠程數據庫應用遷移:

應用於本地開發數據庫

npx wrangler d1 migrations apply <DATABASE_NAME> --local

應用於遠程生產數據庫

npx wrangler d1 migrations apply <DATABASE_NAME> --remote

直接執行 SQL 查詢(用於調試)

在開發或調試過程中,有時需要直接對數據庫執行查詢:

從文件執行

npx wrangler d1 execute <DATABASE_NAME> --file=./query.sql●

 直接執行命令

npx wrangler d1 execute <DATABASE_NAME> --command="SELECT * FROM users;"

在執行這些命令時,必須清晰地使用--local  --remote 標誌來指定操作目標,以防對生產數據造成意外更改。

4.2 管理 Cloudflare R2 對象存儲

wrangler r2 命令集用於管理存儲桶和其中的對象。

存儲桶操作

 創建新存儲桶

npx wrangler r2 bucket create <BUCKET_NAME>

 列出已有存儲桶

npx wrangler r2 bucket list

 刪除存儲桶

npx wrangler r2 bucket delete <BUCKET_NAME>

單文件上傳

上傳單個文件是 r2 命令的基本功能。使用 put 子命令即可完成:

npx wrangler r2 object put <BUCKET_NAME>/<OBJECT_KEY> --file=./path/to/local/file.jpg

可以通過 --content-type 等標誌來設置對象的元數據。

R2目錄和批量上傳

一個常見的需求是上傳整個目錄的靜態資源。wrangler 目前沒有提供一個原生的遞歸上傳命令。為了解決這個問題,可以編寫一個簡單的 Shell 腳本來遍歷本地目錄並逐個上傳文件。

另一種解決方案:cloudflare 兼容亞馬遜 S3 API的使用方式,可以用工具批量上傳、下載、刪除。

下面的小工具,支持cloudflare 的S3 API,可以把文件批量上傳到R2。

https://github.com/808cn163/S3FileManager

用戶界面如下:

圖片

4.3 更新與管理已部署的 Workers

更新代碼與配置

更新一個已部署的 Worker 非常簡單。只需在本地修改代碼或 wrangler.toml 配置文件,然後重新執行 npx wrangler deploy 即可。wrangler 會自動處理新版本的上傳和部署過程。

查看實時日誌

對於已部署的 Workernpx wrangler tail 是一個極其有用的實時調試工具。它能夠將 Worker 的日誌(包括 console.log 的輸出和運行時異常)實時流式傳輸到開發者的終端,從而能夠快速診斷生產環境中的問題。

 2D1  R2 命令標誌(本地 vs. 遠程)

下表清晰地對比了在 D1  R2 命令中 --local --remote 標誌的作用,這對於防止在生產環境中發生誤操作至關重要。

命令

--local 標誌

--remote 標誌

默認行為

wrangler d1 execute

針對本地 .wrangler/ 目錄下的 SQLite 數據庫執行。

針對 wrangler.toml 中配置的已部署的 D1 數據庫執行。

若未指定,則會交互式提示。

wrangler d1 migrations apply

將遷移應用於本地數據庫。

將遷移應用於遠程數據庫。

若未指定,則會交互式提示。

wrangler r2 object put

將對象放入本地 Miniflare 存儲。

(隱式將對象放入真實的 R2 存儲桶。

默認操作遠程存儲。

第五部分:綜合與戰略建議

本部分將報告從技術手冊提升為戰略指南,幫助用戶將 wrangler 融入更廣泛的專業實踐中。

5.1  Wrangler 集成到 CI/CD流水線

身份驗證

CI/CD 環境中,應始終使用範圍受限的 CLOUDFLARE_API_TOKEN,並將其作為環境變量(例如,GitHub Actions  secrets)注入到流水線中。

示例工作流 (GitHub Actions)

下面是一個典型的 .github/workflows/deploy.yml 文件示例,展示了在推送到主分支時自動部署 Worker 的流程:

name:DeployWorker
on:
  push:
    branches:
      -main
  jobs:
    deploy:
      runs-on:ubuntu-latest    
        name:Deploy    
        steps:    
           -uses:actions/checkout@v3      
           -name:UseNode.js        
              uses:actions/setup-node@v3       
                 with:        
                   node-version:'18'    
                 -name:Installdependencies      
                   run:npmci   
                 -name:Runtests      
                   run:npmtest   
                 -name:DeploytoCloudflare      
                   run:npxwranglerdeploy--envproduction       
                    env:CLOUDFLARE_API_TOKEN:${{secrets.CLOUDFLARE_API_TOKEN}}

5.2 常見問題排查

  • 身份驗證錯誤:“You are not logged in. -> 運行 npx wrangler login 或檢查 CLOUDFLARE_API_TOKEN 環境變量是否設置正確。

  • 配置錯誤:“Could not find wrangler.toml -> 確保在項目根目錄下運行命令。

  • 綁定錯誤:“env.DB is undefined -> 檢查 wrangler.toml 文件,確保在當前使用的環境中正確配置了該綁定。

  • 部署錯誤 (523):首次部署到 *.workers.dev 子域後,DNS 可能需要一分鐘左右的時間來傳播,短暫的 523 錯誤是正常現象。

5.3 核心要點總結

wrangler CLI  Cloudflare 開發者平台的核心工具。掌握其工作流是成功遷移和構建應用的關鍵。核心原則包括:

1. 本地優先開發:使用 wrangler dev 進行快速、高保真的本地開發和測試。

2. 配置即代碼:將 wrangler.toml 作為項目的唯一事實來源,進行版本控制和管理。

3. 安全自動化:通過範圍受限的 API 令牌和環境變量實現安全的 CI/CD 流程。

4. 清晰的工作流:為 D1R2 等不同資源採用專用的、清晰的管理命令和流程。

建議:對於準備遷移的團隊,建議採取循序漸進的策略。

選擇一個規模較小、非關鍵的業務模塊進行遷移,以熟悉整個開發、配置和部署流程。從項目一開始,就應該在 wrangler.toml 中建立獨立的 staging  production 環境,這是確保未來可擴展性和穩定性的基石。
wrangler 不僅僅是一個工具,它代表了一種在 Cloudflare 平台上進行現代化、高效和可擴展的無服務器開發的實踐基礎。通過深入掌握它,您的團隊將能夠充分利用 Cloudflare 全球網絡的強大能力。
參考連結:
1. cloudflare/workers-sdk: ⛅️ Home to Wrangler, the CLI for Cloudflare Workers - GitHub,  https://github.com/cloudflare/workers-sdk
2. Using Wrangler (Command Line Interface) ·Cloudflare Pub/Sub docs,  https://developers.cloudflare.com/pub-sub/learning/command-line-wrangler/
3. wrangler - NPM, 
https://www.npmjs.com/package/wrangler
4. Install/Update Wrangler · Cloudflare Workers docs,  https://developers.cloudflare.com/workers/wrangler/install-and-update/
5. Get started - CLI · Cloudflare Workers docs, https://developers.cloudflare.com/workers/get-started/guide/
6. Install and Configure the Cloudflare Workers CLI Wrangler | egghead.io,  https://egghead.io/lessons/cloudflare-install-and-configure-the-cloudflare-workers-cli-wrangler
7. Install and configure Cloudflare Wrangler 2.x, 
https://blog.ericcfdemo.net/posts/installing-and-configuring-wrangler/
8. cloudflare-wrangler - Homebrew Formulae,  https://formulae.brew.sh/formula/cloudflare-wrangler
9. @cloudflare/wrangler - npm,https://www.npmjs.com/package/@cloudflare/wrangler
10. wrangler 1.21.0 - Docs.rs,https://docs.rs/crate/wrangler/latest/source/README.md
11. 0xflotus/wrangler: wrangle your cloudflare workers - GitHub, https://github.com/0xflotus/wrangler
12. wrangler config - Fig.io, 
https://fig.io/manual/wrangler/config
13. Unable to Authenticate Wrangler in any Remote Development Environment · Issue #2874 ·cloudflare/workers-sdk - GitHub, 
https://github.com/cloudflare/workers-sdk/issues/2874
14. Configuration - Wrangler · Cloudflare Workers docs,  https://developers.cloudflare.com/workers/wrangler/configuration/
15. I'm using Cloudflare Pages with KV. - Answer Overflow,  https://www.answeroverflow.com/m/1269012391937445910
16. wrangler login - Fig.io, 
https://fig.io/manual/wrangler/login
17. wrangler dev - Fig.io,https://fig.io/manual/wrangler/dev
18. Environments - Workers - Cloudflare Docs,  https://developers.cloudflare.com/workers/wrangler/environments/
19. Deployment guide for Optimizely Edge Agent on Cloudflare Workers,  https://docs.developers.optimizely.com/feature-experimentation/docs/deployment-guide-for-cloudflare-workers
20. How to deploy to Cloudflare Workers (production) | Uniform for Sitecore Docs, 
https://docs.uniform.dev/sitecore/deploy/how-tos/how-to-deploy-to-cloudflare-workers-production/
21. Bindings · Cloudflare Pages docs,  https://developers.cloudflare.com/pages/functions/bindings/
22. Public Beta: Remote bindings in local development · cloudflare workers-sdk ·Discussion #9660 - GitHub, 
https://github.com/cloudflare/workers-sdk/discussions/9660
23. Bindings (env) - Workers - Cloudflare Docs,  https://developers.cloudflare.com/workers/runtime-apis/bindings/
24. D1: Confused about different environments. How do I set up multiple environment databases? : r/CloudFlare - Reddit,  https://www.reddit.com/r/CloudFlare/comments/1iq3kfr/d1_confused_about_different_environments_how_do_i/
25. Cloudflare Blog App: Full Stack using Workers, D1, R2, Wrangler | by Md Mazaharul Huq, https://jewelhuq.medium.com/cloudflare-blog-app-full-stack-using-workers-d1-r2-wrangler-9759bfec7fd1
26. Defining R2 Binding in wrangler.toml - Cloudflare Developers - Answer Overflow,https://www.answeroverflow.com/m/1284416008806727755
27. Commands - Wrangler · Cloudflare Workers docs,  https://developers.cloudflare.com/workers/wrangler/commands/