Začínáme
Workers KV poskytuje globální úložiště s nízkou latencí a vysokou propustností pro vaše Cloudflare Workers aplikace. Workers KV je ideální pro ukládání konfiguračních dat uživatelů, směrovacích dat, konfigurací A/B testování a autentizačních tokenů a hodí se zejména pro zátěže s vysokým podílem čtení.
Tento návod vás provede:
- Vytváření namespace KV.
- Zápis párů klíč-hodnota do vašeho oboru názvů KV z Cloudflare Workeru.
- Čtení párů klíč-hodnota z namespace KV.
Tyto úkony můžete provádět prostřednictvím rozhraní Wrangler CLI nebo dashboardu Cloudflare.
Rychlý start
Pokud chcete kroky nastavení vynechat a rychle začít, klikněte na tlačítko níže.
Tím se vytvoří repozitář ve vašem účtu GitHub a aplikace se nasadí na Cloudflare Workers. Tuto možnost použijte, pokud Cloudflare Workers dobře znáte a chcete přeskočit podrobné pokyny krok za krokem.
Pokud s Cloudflare Workers teprve začínáte, můžete kroky projít ručně.
Předpoklady
- Zaregistrujte si účet Cloudflare ↗.
- Nainstalujte
Node.js↗.
Správce verzí Node.js
Použijte správce verzí Node, jako je Volta ↗ nebo nvm ↗ abyste se vyhnuli problémům s oprávněními a mohli měnit verze Node.js. Wrangler, o kterém se dozvíte dále v této příručce, vyžaduje verzi Node 16.17.0 nebo novější.
1. Vytvořte projekt Worker
Vytvořte nového Workera pro čtení a zápis do vašeho KV namespace.
-
Vytvořte nový projekt s názvem
kv-tutorialspuštěním:npm create cloudflare@latest -- kv-tutorialPři nastavení vyberte následující možnosti:
- Pro S čím byste chtěli začít?, vyberte
Hello World example. - Pro Jakou šablonu chcete použít?, vyberte
Worker only. - Pro Jaký jazyk chcete použít?, vyberte
TypeScript. - Pro Chcete používat git pro správu verzí?, vyberte
Yes. - Pro Chcete nasadit svou aplikaci?, vyberte
No(před nasazením provedeme ještě několik změn).
Tím se vytvoří nová
kv-tutorialadresáři, jak je znázorněno níže.- kv-tutorial/
- node_modules/
- test/
- src
- index.ts
- package-lock.json
- package.json
- testconfig.json
- vitest.config.mts
- worker-configuration.d.ts
- wrangler.jsonc
Váš nový
kv-tutorialadresář obsahuje:- A
"Hello World"Worker vindex.ts. - A
wrangler.jsonckonfigurační soubor.wrangler.jsoncje způsob, jakým vašekv-tutorialWorker přistupuje k vaší databázi kv.
- Pro S čím byste chtěli začít?, vyberte
-
Přejděte do adresáře, který jste právě vytvořili pro svůj projekt Worker:
cd kv-tutorial
-
V dashboardu Cloudflare přejděte na Workers & Pages stránce.
Přejděte na Workers & Pages ↗ -
Vyberte Vytvoření aplikace.
-
Vyberte Začněte s Hello World! > Začínáme.
-
Pojmenujte svého Workera. Pro účely tohoto tutoriálu pojmenujte svého Workera
kv-tutorial. -
Vyberte Nasadit.
2. Vytvořte KV namespace
A KV namespace je databáze klíč-hodnota replikovaná do globální sítě Cloudflare.
Můžete použít Wrangler k vytvoření nového KV namespace. Můžete ho také použít k provádění operací, jako jsou put, list, get a delete, v rámci vašeho KV namespace.
Vytvoření jmenného prostoru KV pomocí Wrangleru:
-
Otevřete terminál a spusťte následující příkaz:
npx wrangler kv namespace create <BINDING_NAME>npx wrangler kv namespace create <BINDING_NAME>subpříkaz jako argument přijímá název nové binding. KV namespace se vytvoří spojením názvu vašeho Workeru (ze souboru Wrangler) a názvu binding, který zadáte.<BINDING_ID>se vygeneruje náhodně.Pro účely tohoto tutoriálu použijte název bindingu
USERS_NOTIFICATION_CONFIG.npx wrangler kv namespace create USERS_NOTIFICATION_CONFIG🌀 Creating namespace with title "USERS_NOTIFICATION_CONFIG" ✨ Success! Add the following to your configuration file in your kv_namespaces array: { "kv_namespaces": [ { "binding": "USERS_NOTIFICATION_CONFIG", "id": "<BINDING_ID>" } ] }
-
V dashboardu Cloudflare přejděte na Workers KV stránce.
Přejděte na Workers KV ↗ -
Vyberte Vytvořit instanci.
-
Zadejte název pro svůj namespace. Pro účely tohoto tutoriálu použijte
kv_tutorial_namespace. -
Vyberte Vytvořit.
3. Připojení Workeru ke KV namespace
Pro propojení Workeru s oborem názvů KV musíte vytvořit vazbu. Bindings umožňují vašim Workers přistupovat k prostředkům, jako je KV, na vývojářské platformě Cloudflare.
Navázání vašeho jmenného prostoru KV na váš Worker:
-
Do souboru Wrangler přidejte následující s hodnotami, které jste v terminálu vygenerovali pomocí krok 2:
{ "kv_namespaces": [ { "binding": "USERS_NOTIFICATION_CONFIG", "id": "<BINDING_ID>" } ] }[[kv_namespaces]] binding = "USERS_NOTIFICATION_CONFIG" id = "<BINDING_ID>"Názvy vazeb (binding) nemusí odpovídat vytvořenému namespace. Slouží pouze jako reference. Konkrétně:
- Hodnota (řetězec), kterou nastavíte pro
bindingslouží k odkazování na tento KV namespace ve vašem Workeru. Pro účely tohoto tutoriálu by mělo býtUSERS_NOTIFICATION_CONFIG. - Binding musí být platný název proměnné v JavaScriptu ↗. Například
binding = "MY_KV"nebobinding = "routingConfig"by byly oba platné názvy pro binding. - Váš binding je ve Workeru dostupný na
env.<BINDING_NAME>zevnitř vašeho Workeru. Pro účely tohoto tutoriálu je binding dostupný naenv.USERS_NOTIFICATION_CONFIG.
- Hodnota (řetězec), kterou nastavíte pro
-
V dashboardu Cloudflare přejděte na Workers & Pages stránce.
Přejděte na Workers & Pages ↗ -
Vyberte
kv-tutorialWorker, který jste vytvořili v krok 1. -
Přejděte do Bindings kartě a poté vyberte Add binding.
-
Vyberte KV namespace > Add binding.
-
Pojmenujte binding (
BINDING_NAME) v Název proměnné, poté vyberte KV namespace (kv_tutorial_namespace) kterou jste vytvořili v krok 2 z rozbalovací nabídky. -
Vyberte Add binding k nasazení vaší vazby.
4. Práce s vaším KV namespace
S oborem názvů KV můžete pracovat prostřednictvím Wrangler nebo přímo z vašeho Workers aplikace.
4.1. Zápis hodnoty
Zápis hodnoty do prázdného jmenného prostoru KV pomocí Wrangleru:
-
Spustit
wrangler kv key putsubpříkaz ve svém terminálu a zadejte postupně klíč a hodnotu.<KEY>a<VALUE>jsou hodnoty podle vašeho výběru.npx wrangler kv key put --binding=<BINDING_NAME> "<KEY>" "<VALUE>"V tomto tutoriálu přidáte klíč
user_1s hodnotouenableddo KV namespace, který jste vytvořili v krok 2.npx wrangler kv key put --binding=USERS_NOTIFICATION_CONFIG "user_1" "enabled"Writing the value "enabled" to key "user_1" on namespace <BINDING_ID>.
-
V dashboardu Cloudflare přejděte na Workers KV stránce.
Přejděte na Workers KV ↗ -
Vyberte KV namespace, který jste vytvořili (
kv_tutorial_namespace). -
Přejděte na Páry KV kartě.
-
Zadejte
<KEY>dle vlastního výběru. -
Zadejte
<VALUE>dle vlastního výběru. -
Vyberte Přidat položku.
4.2. Získání hodnoty
Přístup k hodnotě z vašeho jmenného prostoru KV pomocí Wrangleru:
-
Spustit
wrangler kv key getsubpříkaz ve svém terminálu a zadejte hodnotu klíče:npx wrangler kv key get --binding=<BINDING_NAME> "<KEY>"V tomto tutoriálu získáte hodnotu klíče
user_1z KV namespace, který jste vytvořili v krok 2.npx wrangler kv key get --binding=USERS_NOTIFICATION_CONFIG "user_1" --textPodobně jako
putpříkazugetpříkaz lze také použít pro přístup ke KV namespace dvěma způsoby: pomocí--bindingnebo--namespace-id:
Viz kv bulk dokumentace k zápisu souboru s více páry klíč-hodnota do daného KV namespace.
Páry klíč-hodnota můžete zobrazit přímo z dashboardu.
-
V dashboardu Cloudflare přejděte na Workers KV stránce.
Přejděte na Workers KV ↗ -
Přejděte do jmenného prostoru KV, který jste vytvořili (
kv_tutorial_namespace). -
Přejděte na Páry KV kartě.
5. Přístup ke KV namespace z Workeru
-
Do skriptu Worker přidejte vazbu KV do
Envrozhraní. Pokud jste svůj projekt inicializovali pomocí JavaScriptu, tento krok není nutný.interface Env { USERS_NOTIFICATION_CONFIG: KVNamespace; // ... other binding types } -
Použijte
put()metodu naUSERS_NOTIFICATION_CONFIGk vytvoření nového páru klíč-hodnota. Přidáte nový klíčuser_2s hodnotoudisableddo vašeho KV namespace.let value = await env.USERS_NOTIFICATION_CONFIG.put("user_2", "disabled"); -
Použijte KV
get()metodu k načtení dat uložených ve vašem KV namespace. Načtete hodnotu klíčeuser_2z vašeho KV namespace.let value = await env.USERS_NOTIFICATION_CONFIG.get("user_2");
Kód vašeho Workeru by měl vypadat takto:
export default {
async fetch(request, env, ctx) {
try {
await env.USERS_NOTIFICATION_CONFIG.put("user_2", "disabled");
const value = await env.USERS_NOTIFICATION_CONFIG.get("user_2");
if (value === null) {
return new Response("Value not found", { status: 404 });
}
return new Response(value);
} catch (err) {
console.error(`KV returned error:`, err);
const errorMessage =
err instanceof Error
? err.message
: "An unknown error occurred when accessing KV storage";
return new Response(errorMessage, {
status: 500,
headers: { "Content-Type": "text/plain" },
});
}
},
};export interface Env {
USERS_NOTIFICATION_CONFIG: KVNamespace;
}
export default {
async fetch(request, env, ctx): Promise<Response> {
try {
await env.USERS_NOTIFICATION_CONFIG.put("user_2", "disabled");
const value = await env.USERS_NOTIFICATION_CONFIG.get("user_2");
if (value === null) {
return new Response("Value not found", { status: 404 });
}
return new Response(value);
} catch (err) {
console.error(`KV returned error:`, err);
const errorMessage =
err instanceof Error
? err.message
: "An unknown error occurred when accessing KV storage";
return new Response(errorMessage, {
status: 500,
headers: { "Content-Type": "text/plain" },
});
}
},
} satisfies ExportedHandler<Env>;Výše uvedený kód:
- Zapíše klíč do vašeho oboru názvů KV pomocí
put()metoda. - Čte stejný klíč pomocí
get()metoda. - Zkontroluje, zda je klíč null, a vrátí
404odpověď, pokud tomu tak je. - Pokud klíč není null, vrátí jeho hodnotu.
- Využívá JavaScriptovu metodu
try...catch↗ ošetření výjimek pro zachycení případných chyb. Při zápisu do libovolné služby nebo čtení z ní, jako je Workers KV nebo externí API, pomocífetch()byste měli počítat s tím, že výjimky budete muset ošetřovat explicitně.
-
V dashboardu Cloudflare přejděte na Workers & Pages stránce.
Přejděte na Workers & Pages ↗ -
Přejděte na
kv-tutorialWorker, který jste vytvořili. -
Vyberte Edit Code.
-
Vymažte veškerý obsah
workers.jssoubor a poté vložte následující kód.export default { async fetch(request, env, ctx) { try { await env.USERS_NOTIFICATION_CONFIG.put("user_2", "disabled"); const value = await env.USERS_NOTIFICATION_CONFIG.get("user_2"); if (value === null) { return new Response("Value not found", { status: 404 }); } return new Response(value); } catch (err) { console.error(`KV returned error:`, err); const errorMessage = err instanceof Error ? err.message : "An unknown error occurred when accessing KV storage"; return new Response(errorMessage, { status: 500, headers: { "Content-Type": "text/plain" }, }); } }, };export interface Env { USERS_NOTIFICATION_CONFIG: KVNamespace; } export default { async fetch(request, env, ctx): Promise<Response> { try { await env.USERS_NOTIFICATION_CONFIG.put("user_2", "disabled"); const value = await env.USERS_NOTIFICATION_CONFIG.get("user_2"); if (value === null) { return new Response("Value not found", { status: 404 }); } return new Response(value); } catch (err) { console.error(`KV returned error:`, err); const errorMessage = err instanceof Error ? err.message : "An unknown error occurred when accessing KV storage"; return new Response(errorMessage, { status: 500, headers: { "Content-Type": "text/plain" }, }); } }, } satisfies ExportedHandler<Env>;Výše uvedený kód:
- Zapíše klíč do
BINDING_NAMEpomocíput()metoda. - Čte stejný klíč pomocí
get()metoda a vrátí chybu, pokud je klíč null (respektive pokud klíč není nastaven nebo neexistuje). - Využívá JavaScriptovu metodu
try...catch↗ ošetření výjimek pro zachycení případných chyb. Při zápisu do libovolné služby nebo čtení z ní, jako je Workers KV nebo externí API, pomocífetch()byste měli počítat s tím, že výjimky budete muset ošetřovat explicitně.
Prohlížeč by měl jednoduše vrátit
VALUEodpovídajícíKEYkterou jste zadali pomocíget()metoda. - Zapíše klíč do
-
Vyberte rozbalovací šipku vedle Nasadit a vyberte Save.
6. Nasaďte svůj Worker
Nasaďte svého Workera do globální sítě Cloudflare.
-
Spusťte následující příkaz pro nasazení KV do globální sítě Cloudflare:
npm run deploy -
Přejděte na adresu URL vaší nově vytvořené aplikace Workers KV.
Pokud je například URL vašeho nového Workeru
kv-tutorial.<YOUR_SUBDOMAIN>.workers.dev, přístupem khttps://kv-tutorial.<YOUR_SUBDOMAIN>.workers.dev/odešle na váš Worker požadavek, který zapisuje do Workers KV (a čte z něj).
-
V dashboardu Cloudflare přejděte na Workers & Pages stránce.
Přejděte na Workers & Pages ↗ -
Vyberte svůj
kv-tutorialWorker. -
Vyberte Deployments.
-
Z Historie verzí tabulku vyberte Deploy version.
-
Z Deploy version stránce vyberte Nasadit.
Tím se do produkce nasadí nejnovější verze kódu Workeru.
Souhrn
Po dokončení tohoto tutoriálu jste:
- Vytvořili jste namespace KV
- Vytvořili jste Workera, který do tohoto namespace zapisuje a čte z něj
- Nasadili jste svůj projekt globálně.
Další kroky
Pokud máte požadavky na nové funkce nebo jste narazili na chyby, sdílejte zpětnou vazbu přímo s týmem Cloudflare, a to prostřednictvím Komunita vývojářů Cloudflare na Discordu ↗.
- Více informací o KV API.
- Zjistěte, jak používat Prostředí s Workers KV.
- Přečtěte si dokumentaci Wrangler
kvdokumentace k příkazu.