Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

環境

最終更新 Markdown で表示Agent セットアップ

KV namespace は environments と組み合わせて使えます。Worker のコードが MY_KV のような KV バインディングを参照していて、そのバインディングを別の KV namespace(たとえばステージング用と本番用)に向けたい場合に便利です。

次の Wrangler ファイルの設定は、バインディング名は同じで、KV namespace が異なる 2 つの環境を示します。

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

[[env.production.kv_namespaces]]
binding = "MY_KV"
id = "a825455ce00f4f7282403da85269f8ea"

2 つの異なる KV namespace に同じバインディング名を使うと、Worker のコードが読みやすくなります。

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

staging の KV namespace に値を挿入するには、次を実行します。

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

--namespace-id は(バインディング名と異なり)常に一意なので、--env 引数は不要です。

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

ほとんどの kv サブコマンドでは、任意の --env フラグで環境を指定できます。

任意の --env フラグで環境を指定すると、同じコードで異なる KV namespace を使う Worker を公開できます。

たとえば、Wrangler ファイルでステージング用と本番用の KV namespace を分けられます。

{
	"$schema": "./node_modules/wrangler/config-schema.json",
	"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"
				}
			]
		}
	}
}
"$schema" = "./node_modules/wrangler/config-schema.json"
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/*"

  [[env.production.kv_namespaces]]
  binding = "MY_KV"
  id = "07bc1f3d1f2a4fd8a45a7e026e2681c6"

上記の Wrangler ファイルでは、env.production 配下の KV namespace MY_KV に対して KV 操作をするときに --env production を指定できます。

たとえば、上記の Wrangler ファイルでは、次のコマンドで本番の KV インスタンスから値を取得できます。

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

役に立ちましたか?