INTEGRITY Dokumentace

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);
  }
}