Cloudflare WorkersでKVを使ったAPIをローカル開発する際はPreviewを作ろう
KVを利用したAPIをWorkersで作ろうとした際に、エラーに遭遇したので覚え書き。 wrangler devがエラーになる wrangler devを実行すると、「開発環境でproductionのKVにアクセスしない […]
広告ここから
広告ここまで
目次
KVを利用したAPIをWorkersで作ろうとした際に、エラーに遭遇したので覚え書き。
wrangler dev
がエラーになる
wrangler dev
を実行すると、「開発環境でproductionのKVにアクセスしないで(意訳)」と言われます。
% wrangler dev
yarn run v1.22.15
$ /Users/sandbox/cloudflare/node_modules/.bin/wrangler dev
⛅️ wrangler 2.12.3
--------------------
✘ [ERROR] In development, you should use a separate kv namespace than the one you'd use in production. Please create a new kv namespace with "wrangler kv:namespace create <name> --preview" and add its id as preview_id to the kv_namespace "first_kv" in your wrangler.toml
wrangler dev
する場合、kv:namespace create --preview
を実行しよう
「--preview
でKV作れ」と言われるので、作成しましょう。
% wrangler kv:namespace create first_kv --preview
⛅️ wrangler 2.12.3
--------------------
🌀 Creating namespace with title "cloudflare-first_kv_preview"
✨ Success!
Add the following to your configuration file in your kv_namespaces array:
{ binding = "first_kv", preview_id = "9xxxx" }
✨ Done in 1.81s.
Preview用のKVのIDが取得できました。
wrangler.toml
にある作成済みのKVに、preview_id
を追加しましょう。
kv_namespaces = [
{binding = "first_kv", id = "2xxxx", preview_id = "9xxxxxx2" }
]
wrangler dev
とwrangler publish
でKVのIDが変わる
1つのBindingにprod / previewのIDを設定しました。
これで開発モードと本番デプロイでは、それぞれ対応したIDのKVが利用されます。
% wrangler dev
⛅️ wrangler 2.12.3
--------------------
Your worker has access to the following bindings:
- KV Namespaces:
- first_kv: 9xxxxxx2
⬣ Listening at http://0.0.0.0:8787
- http://127.0.0.1:8787
- http://172.30.0.117:8787
Total Upload: 0.28 KiB / gzip: 0.22 KiB
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ [b] open a browser, [d] open Devtools, [l] turn on local mode, [c] clear console, [x] to exit │
╰──────────────────────────────────────────────────────────────────────────────────────────────
publish
は、preview_id
ではなくid
の方につないでくれます。
% yarn wrangler publish
yarn run v1.22.15
$ /Users/okamotohidetaka/sandbox/cloudflare/node_modules/.bin/wrangler publish
⛅️ wrangler 2.12.3
--------------------
Your worker has access to the following bindings:
- KV Namespaces:
- first_kv: 275329e81c89462095e2f174bfc2c2ef
Total Upload: 0.28 KiB / gzip: 0.22 KiB
Uploaded cloudflare (1.05 sec)