cloudflare wrangler そろそろ理解する
関連
workerを開発するための統合ツールって覚えておく
ちょっと違うかもだけど、javascriptのnpmみたいな。npmはより多い機能があるけど。
多分だけど、wrangler.toml 1つにつき、1つのworkerを管理するのが綺麗。
環境変数とか使えるから、最近は、wrangler.jsoncの方がtomlより良さそう。
Input
hr.icon
CDNやドメイン操作をするのは、flarectl
q.icon なぜ分けた?
a.icon エッジコンピューティングってだけで大容量にやることあるのかもしれない。
だから分けてるんだと思われる。たぶん。知らんけど。
ローカルマシンでWorkersを実行できる
q.icon どういうことだ?onigiri.w2.icon
a.icon 開発環境を作れるってこと
npm run devとかと同じ類
構成ファイル:wrangler.toml
はい
Node.jsとnpmが必要
q.icon なんで?
a.icon V8で動くから
wranglerのコマンド
https://scrapbox.io/files/69220160dbc2ccab937db7b5.png
なるほど。便利かも
イメージ
https://scrapbox.io/files/692201924830336db7bb0afa.png
なるほどなぁonigiri.w2.icon
wrangler kv 🗂️ Manage Workers KV Namespaces
wrangler queues 🇶 Manage Workers Queues
wrangler r2 📦 Manage R2 buckets & objects
wrangler d1 🗄 Manage Workers D1 databases
こういうの見ると、kvとかr2とかって、エッジコンピューティング用のサービスなんだろうなonigiri.w2.icon
wranglerはそういうのも含めて面倒を見るって感じかなたぶん。
workerが使うkvの設定をtomlに書くとかそういうのしそう
Wranglerはオプションでwrangler.tomlというファイルを使ってWorkerの開発・デプロイ設定をカスタマイズすることができます。
やっぱり、wrangler自体がworkersを開発するためのツール
npmとかそういうイメージしておくか?ライブラリをマネージしないだろうけど。
なんかそういう系だたぶん。
code: wrangler.toml
name = "worker_name" ## Workerの名前
main = "src/index.js" ## Workerが実行するメインのjsファイル
compatibility_date = "2024-12-24" ## 互換性の日付
account_id = "000000000000" ## Wranglerで連携しているCloudflareのアカウントID
route = "example.com/*" ## Workerアクセスドメイン
# カスタムビルド設定
command = "make build"
# 環境変数(機密性が低いもの)
API_KEY = "*******"
# ログ設定
enabled = true
head_sampling_rate = 0.1 # 10%のログを記録する
# CRON設定
crons = * * * *"
# R2バケット連携設定
r2_buckets
binding = "MY_BUCKET"
bucket_name = "r2_sample_bucket"
イメージ湧いてきた。
補足: Bindings
Worker内で他のCloudflareサービスと連携したいときには、Bindingを設定するだけで簡単にできます。先ほどの例のコードにもR2バケットとのバインディングを記載をしておりますが、
code: toml
r2_buckets
binding = "MY_BUCKET"
bucket_name = "r2_sample_bucket"
このように設定するだけで、Worker内からMY_BUCKETという名称を使用して、r2_sample_bucketの操作をできるようになってます。
なるほど。開発対象のworkerコード内で使えるってことねonigiri.w2.icon