Skip to content

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

Cloudflare Workers KV

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

グローバルで低レイテンシのキーバリューデータストレージを作成します。

Free および Paid プランで利用できます

Workers KV は、世界中でデータを保存・取得できるデータストレージです。Workers KV を使うと、高い読み取り量を低レイテンシで処理する、動的で高性能な API とウェブサイトを構築できます。

たとえば、Workers KV は次の用途に使えます。

  • API レスポンスのキャッシュ
  • ユーザー設定 / 環境設定の保存
  • ユーザー認証情報の保存

Workers KV namespace には、Cloudflare Workers から Workers Bindings でアクセスするか、外部アプリケーションから REST API でアクセスします。

export default {
	async fetch(request, env, ctx): Promise<Response> {
		// write a key-value pair
		await env.KV.put('KEY', 'VALUE');

		// read a key-value pair
		const value = await env.KV.get('KEY');

		// list all key-value pairs
		const allKeys = await env.KV.list();

		// delete a key-value pair
		await env.KV.delete('KEY');

		// return a Workers response
		return new Response(
			JSON.stringify({
				value: value,
				allKeys: allKeys,
			}),
		);
	},

} satisfies ExportedHandler<{ KV: KVNamespace }>;
{
	"$schema": "node_modules/wrangler/config-schema.json",
	"name": "<ENTER_WORKER_NAME>",
	"main": "src/index.ts",
	"compatibility_date": "2025-02-04",
	"observability": {
		"enabled": true
	},

	"kv_namespaces": [
		{
			"binding": "KV",
			"id": "<YOUR_BINDING_ID>"
		}
	]
}

Workers KV binding API リファレンス の全体を参照してください。

curl https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/storage/kv/namespaces/$NAMESPACE_ID/values/$KEY_NAME \
		-X PUT \
		-H 'Content-Type: multipart/form-data' \
		-H "X-Auth-Email: $CLOUDFLARE_EMAIL" \
		-H "X-Auth-Key: $CLOUDFLARE_API_KEY" \
		-d '{
			"value": "Some Value"
		}'

curl https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/storage/kv/namespaces/$NAMESPACE_ID/values/$KEY_NAME \
		-H "X-Auth-Email: $CLOUDFLARE_EMAIL" \
		-H "X-Auth-Key: $CLOUDFLARE_API_KEY"
const client = new Cloudflare({
	apiEmail: process.env['CLOUDFLARE_EMAIL'], // This is the default and can be omitted
	apiKey: process.env['CLOUDFLARE_API_KEY'], // This is the default and can be omitted
});

const value = await client.kv.namespaces.values.update('<KV_NAMESPACE_ID>', 'KEY', {
	account_id: '<ACCOUNT_ID>',
	value: 'VALUE',
});

const value = await client.kv.namespaces.values.get('<KV_NAMESPACE_ID>', 'KEY', {
	account_id: '<ACCOUNT_ID>',
});

const value = await client.kv.namespaces.values.delete('<KV_NAMESPACE_ID>', 'KEY', {
	account_id: '<ACCOUNT_ID>',
});

// Automatically fetches more pages as needed.
for await (const namespace of client.kv.namespaces.list({ account_id: '<ACCOUNT_ID>' })) {
	console.log(namespace.id);
}

外部アプリケーションから REST API を使う詳細は、Workers KV の REST API と SDK リファレンス を参照してください。TypeScript、Python、Go 向けの事前生成 SDK も用意されています。

はじめる

機能

キーバリューストレージ

Workers KV がデータを保存・取得する仕組みを学びます。

Wrangler

Workers のコマンドラインインターフェイスである Wrangler を使うと、Workers プロジェクトの 作成テストデプロイ ができます。

バインディング

バインディングを使うと、Worker が Cloudflare 開発者プラットフォーム上のリソース、R2Durable ObjectsD1 とやり取りできます。

Jurisdictions

コンプライアンス要件を満たすため、KV namespace を特定の法域(jurisdiction)内にのみ永続保存するよう制限できます。現在はプライベートベータです。


関連製品

R2

Cloudflare R2 Storage を使うと、一般的なクラウドストレージに伴う高額なエグレス帯域料金なしで、大量の非構造化データを保存できます。

Durable Objects

Cloudflare Durable Objects を使うと、スケーラブルなコンピュートと、永続的で一貫したストレージにアクセスできます。

D1

SQLite を基盤とする D1 は、Cloudflare 初のクエリ可能なリレーショナルデータベースです。データのインポート、またはテーブル定義とクエリの記述を、Worker 内または API 経由で行い、データベース全体を作成できます。


その他のリソース

制限

KV の制限について学びます。

料金

KV の料金について学びます。

Discord

質問したり、作っているものを紹介したり、ほかの開発者とプラットフォームについて議論できます。

Twitter

製品発表、新しいチュートリアル、Cloudflare Developer Platform の最新情報を確認できます。

役に立ちましたか?