key a polem value vám poskytne trvalé key-value úložiště, omezené na pracovní prostor, které lze dotazovat přes stejný typovaný klient API, který už používáte pro záznamy.
Definujte objekt úložiště
Deklarujte vlastní objekt se dvěma poli —key (jedinečný TEXT) a value (RAW_JSON, takže můžete ukládat libovolná JSON-serializovatelná data). Úplnou referenci defineObject najdete v Objects.
src/objects/kv-store.object.ts
Vynucení jedinečnosti klíče
Přidejte nakey jedinečný index, aby stejný klíč nikdy nemohl mít dva řádky. Toto je doporučené primitivum pro jedinečnost — viz Data → Unique indexes.
src/indexes/kv-store-key.index.ts
Čtení a zápis z logické funkce
Zabalte objekt do několika malých helperů, aby zbytek vašeho kódu vypadal jako key-value API —get, set a del. Používají CoreApiClient, který je generovaný ze schématu vašeho pracovního prostoru a je plně typovaný proti objektu kvStore.
src/logic-functions/handlers/kv-store.ts
Jedinečný index chrání před duplikáty, ale dva běhy, které ve stejný okamžik zapisují stejný nový klíč, se stále mohou předhánět mezi vyhledáním a vytvořením. Považujte vytvoření, které selže na omezení jedinečnosti, za „někdo jiný vyhrál“ — zachyťte ho a znovu přečtěte, nebo to zkuste znovu jako aktualizaci.
Použití: kešujte nákladné volání
Typickým použitím je kešování pomalé nebo omezované (rate-limited) odpovědi třetí strany, aby opakované běhy znovu použily výsledek místo placení nákladů při každém spuštění.src/logic-functions/getExchangeRate.logic-function.ts
Vzorové postupy a tipy
- Jmenné prostory. Přidávejte prefixy ke klíčům, abyste oddělili různé oblasti a usnadnili hromadná vyhledávání —
sync-cursor:linear,cache:exchange-rate:USD:EUR,lock:nightly-report. Filtrovánímkey: { like: 'cache:%' }můžete vypsat nebo vyčistit celý jmenný prostor. - Expirace (TTL). Úložiště nemá vestavěnou expiraci. Uložte časové razítko dovnitř
value(jako v příkladu s keší) a při čtení ho kontrolujte, nebo přidejte poleDATE_TIMEa pravidelně čistěte zastaralé řádky z funkce spouštěné cronem. - Co ukládat.
RAW_JSONobsahuje libovolnou JSON-serializovatelnou hodnotu — čísla, řetězce, pole, objekty. Držte záznamy malé; toto je určeno pro koordinaci a kešování, ne pro velké objekty blob nebo soubory. Pro soubory použijte poleFILESauploadFile. - Viditelnost a oprávnění. Řádky žijí v databázi pracovního prostoru jako jakýkoli jiný záznam, takže je lze dotazovat přes API a respektují role vaší aplikace. Aby se úložiště neobjevovalo v hlavním rozhraní, neuvádějte ho v navigačním menu.
- Vazba na záznam. Potřebujete stav na úrovni jednotlivých záznamů místo globálních klíčů? Přidejte relaci z objektu úložiště na cílový objekt namísto zakódování id do klíče.
Jde o konvenci, ne o samostatnou funkci — „KV Store“ je pouze běžný vlastní objekt, který definujete a dotazujete přes standardní API. To znamená, že těží ze stejné synchronizace, oprávnění a nástrojů jako ostatní data vaší aplikace.