← Cloudflare Workers KV / kv / reference
Окружения
Пространства имён KV можно использовать с окружения. Это полезно, если в коде вашего Worker есть обращение к привязке KV, например MY_KV, и вы хотите, чтобы эти привязки указывали на разные пространства имён KV (например, одно для staging и одно для production).
В приведенном ниже коде файла Wrangler показано, как настроить два окружения с разными пространствами имен KV, но с одинаковым именем привязки:
{
"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"Использование одного и того же имени привязки для двух разных пространств имён KV делает код вашего Worker более читаемым.
В staging окружение, MY_KV.get("KEY") будет выполнять чтение из пространства имён с ID e29b263ab50e42ce9b637fa8370175e8. В production окружение, MY_KV.get("KEY") будет выполнять чтение из пространства имён с ID a825455ce00f4f7282403da85269f8ea.
Чтобы вставить значение в staging пространство имён KV выполните команду:
wrangler kv key put --env=staging --binding=<YOUR_BINDING> "<KEY>" "<VALUE>"С --namespace-id всегда уникален (в отличие от имён binding), поэтому вам не нужно указывать --env аргумент:
wrangler kv key put --namespace-id=<YOUR_ID> "<KEY>" "<VALUE>"Большинство kv подкоманды также позволяют указать окружение с помощью необязательного --env флаг.
Указание окружения с помощью необязательного --env флаг позволяет публиковать Workers с одинаковым кодом, но с разными пространствами имён KV.
Например, в Wrangler-файле можно использовать отдельные пространства имён KV для стейджинга и продакшена:
{
"$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 в пространстве имён KV MY_KV в разделе env.production.
Например, с помощью приведённого выше Wrangler-файла вы можете получить значение из продакшен-экземпляра KV следующим образом:
wrangler kv key get --binding "MY_KV" --env=production "<KEY>"