コンテンツにスキップ

環境

KV 名前空間は 環境 と共に使用できます。これは、Worker 内のコードが MY_KV のような KV バインディングを参照している場合に便利で、これらのバインディングを異なる KV 名前空間(例えば、ステージング用と本番用)にポイントさせたいときに役立ちます。

以下の wrangler.toml ファイルのコードは、異なる KV 名前空間を持つ2つの環境を同じバインディング名で持つ方法を示しています:

[env.staging]
kv_namespaces = [
{ binding = "MY_KV", id = "e29b263ab50e42ce9b637fa8370175e8" }
]
[env.production]
kv_namespaces = [
{ binding = "MY_KV", id = "a825455ce00f4f7282403da85269f8ea" }
]

異なる KV 名前空間に対して同じバインディング名を使用することで、Worker コードをより読みやすく保つことができます。

staging 環境では、MY_KV.get("KEY") は名前空間 ID e29b263ab50e42ce9b637fa8370175e8 から読み取ります。production 環境では、MY_KV.get("KEY") は名前空間 ID a825455ce00f4f7282403da85269f8ea から読み取ります。

staging KV 名前空間に値を挿入するには、次のコマンドを実行します:

Terminal window
wrangler kv key put --env=staging --binding=<YOUR_BINDING> "<KEY>" "<VALUE>"

--namespace-id は常にユニークであるため(バインディング名とは異なり)、--env 引数を指定する必要はありません:

Terminal window
wrangler kv key put --namespace-id=<YOUR_ID> "<KEY>" "<VALUE>"

ほとんどの kv サブコマンドは、オプションの --env フラグを使用して環境を指定することもできます。

オプションの --env フラグを使用して環境を指定することで、異なる KV 名前空間を持つ同じコードを実行している Workers を公開できます。

例えば、wrangler.toml ファイル内の KV データに対して、ステージングと本番の KV 名前空間を別々に使用することができます:

type = "webpack"
name = "my-worker"
account_id = "<account id here>"
route = "staging.example.com/*"
workers_dev = false
kv_namespaces = [
{ binding = "MY_KV", id = "06779da6940b431db6e566b4846d64db" }
]
[env.production]
route = "example.com/*"
kv_namespaces = [
{ binding = "MY_KV", id = "07bc1f3d1f2a4fd8a45a7e026e2681c6" }
]

上記の wrangler.toml ファイルを使用すると、env.production の下の KV 名前空間 MY_KV に対して KV アクションを実行したいときに --env production を指定できます。

例えば、上記の wrangler.toml ファイルを使用して、本番 KV インスタンスから値を取得するには、次のコマンドを実行します:

Terminal window
wrangler kv key get --binding "MY_KV" --env=production "<KEY>"