← Cloudflare Workers KV / kv / koncepty
Vazby KV
KV vazby umožňují komunikaci mezi Workerem a KV namespace.
Nakonfigurujte KV bindingy v Konfigurační soubor Wrangler.
Přístup ke KV z Workers
A KV namespace je databáze klíč-hodnota replikovaná do globální sítě Cloudflare.
Chcete-li se z Workeru připojit k jmennému prostoru KV, musíte definovat binding, který odkazuje na ID daného jmenného prostoru.
Název bindingu se nemusí shodovat s názvem KV namespace. Binding by měl být platným identifikátorem JavaScriptu, protože bude v rámci vašeho Workeru existovat jako globální proměnná.
KV namespace bude mít název, který zvolíte (například My tasks), a přiřazené ID (například 06779da6940b431db6e566b4846d64db).
Chcete-li spustit svůj Worker, definujte binding.
V následujícím příkladu se vazba nazývá TODO. V kv_namespaces část konfiguračního souboru Wrangler přidejte:
{
"$schema": "./node_modules/wrangler/config-schema.json",
"name": "worker",
// ...
"kv_namespaces": [
{
"binding": "TODO",
"id": "06779da6940b431db6e566b4846d64db"
}
]
}"$schema" = "./node_modules/wrangler/config-schema.json"
name = "worker"
[[kv_namespaces]]
binding = "TODO"
id = "06779da6940b431db6e566b4846d64db"Nasazený Worker tak bude mít TODO pole v objektu prostředí (druhý parametr fetch() obslužné rutině požadavku). Jakékoli metody na TODO binding bude mapován na KV namespace s ID 06779da6940b431db6e566b4846d64db kterou jste nazvali My Tasks dříve.
export default {
async fetch(request, env, ctx) {
// Get the value for the "to-do:123" key
// NOTE: Relies on the `TODO` KV binding that maps to the "My Tasks" namespace.
let value = await env.TODO.get("to-do:123");
// Return the value, as is, for the Response
return new Response(value);
},
};Použití bindingů KV při místním vývoji
Pokud pro místní vývoj používáte Wrangler s wrangler dev příkazu bude Wrangler ve výchozím nastavení používat lokální verzi KV, aby se zabránilo zásahu do vašich živých produkčních dat v KV. To znamená, že čtení klíčů, které jste lokálně nezapsali, vrátí null.
Aby wrangler dev připojení k vašemu Workers KV namespace běžícímu na globální síti Cloudflare nastavte "remote" : true v konfiguraci KV binding. Více informací naleznete v dokumentace k remote bindings s dalšími informacemi.
{
"$schema": "./node_modules/wrangler/config-schema.json",
"name": "worker",
// ...
"kv_namespaces": [
{
"binding": "TODO",
"id": "06779da6940b431db6e566b4846d64db"
}
]
}"$schema" = "./node_modules/wrangler/config-schema.json"
name = "worker"
[[kv_namespaces]]
binding = "TODO"
id = "06779da6940b431db6e566b4846d64db"Přístup ke KV z Durable Objects a Workers pomocí formátu ES modulů
Durable Objects používají formát ES modulů. Místo globální proměnné jsou vazby dostupné jako vlastnosti env parametr předaný konstruktoru.
Příklad může vypadat takto:
import { DurableObject } from "cloudflare:workers";
export class MyDurableObject extends DurableObject {
constructor(ctx, env) {
super(ctx, env);
}
async fetch(request) {
const valueFromKV = await this.env.NAMESPACE.get("someKey");
return new Response(valueFromKV);
}
}