INTEGRITY Документация

Привязки KV

KV привязки обеспечивают связь между Worker и пространством имён KV.

Настройте привязки KV в конфигурационный файл Wrangler.

Доступ к KV из Workers

A Пространство имён KV это база данных ключ-значение, реплицированная в глобальную сеть Cloudflare.

Чтобы подключиться к пространству имён KV из Worker, необходимо определить привязку, указывающую на идентификатор этого пространства имён.

Имя привязки не обязательно должно совпадать с именем пространства имен KV. Вместо этого оно должно быть допустимым идентификатором JavaScript, так как именно под этим идентификатором привязка станет глобальной переменной в вашем Worker.

Пространству имён KV присваивается имя, которое вы выбираете (например, My tasks), и присвоенный ID (например, 06779da6940b431db6e566b4846d64db).

Чтобы выполнить ваш Worker, определите привязку.

В следующем примере привязка называется TODO. В kv_namespaces раздел файла конфигурации Wrangler добавьте:

{
	"$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"

После этого у развёрнутого Worker будет TODO поле в объекте окружения (второй параметр fetch() обработчике запросов). Любые методы TODO привязка будет сопоставлена с пространством имён KV с идентификатором 06779da6940b431db6e566b4846d64db, которое вы назвали My Tasks ранее.

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

Использование привязок KV при локальной разработке

Когда вы используете Wrangler для локальной разработки с wrangler dev команды Wrangler по умолчанию использует локальную версию KV, чтобы не затрагивать данные в рабочей (production) версии KV. Это означает, что при чтении ключей, которые вы не записывали локально, будет возвращено null.

Чтобы wrangler dev подключения к пространству имён Workers KV, работающему в глобальной сети Cloudflare, укажите "remote" : true в конфигурации привязки KV. См. документация по remote bindings, где это описано подробнее.

{
	"$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"

Доступ к KV из Durable Objects и Workers с использованием формата ES-модулей

Durable Objects используют формат модулей ES. Вместо глобальной переменной привязки доступны как свойства env параметр переданный в конструктор.

Пример может выглядеть так:

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