Neuigkeiten von trion.
Immer gut informiert.

Cloudflare Worker mit Key/Value Store

In dem Artikel Serverless kaskadiert haben wir einen Serverless Service mit Cloudflare vorgestellt. Dieser Cloudflare Worker hat eine Mail examplarisch via Mailgun versendet.

Was aber macht der Entwickler, wenn er in einem Worker Kontext Daten persistieren möchte? In der schönen, neuen Cloud-Welt verwendet er selbstverständlich einen Cloud Store!

Cloudflare bietet mit Workers KV einen passenden, optimal in das Cloudflare Universum integrierten Key-Value Store an.

Dies stellen wir anhand eines kleinen Beispieles dar.

Anlegen des Stores

Mit der Wrangler CLI ist ein solcher Store schnell instantiiert:

$ wrangler kv:namespace create "TRION_MAILING"
 Creating namespace with title "mailing-worker-TRION_MAILING"
 Success!
Add the following to your configuration file:
kv_namespaces = [
         { binding = "TRION_MAILING", id = "..." }
]

Wir gehorchen Wrangler und schreiben den Eintrag kv_namespaces in das wrangler.toml des Projektes.

name = "kv-service"
type = "javascript"

kv_namespaces = [
         { binding = "TRION_MAILING", id = "<namespace_id>" }
]

account_id = "<account_id>"
workers_dev = true
route = ""
zone_id = ""
compatibility_date = "2022-02-15"

Damit ist der KV Store gebunden und kann mit einer einfachen get/put Semantik im Code referenziert werden.

Beispiel: Javascript mit Rückgabe des vorhergehenden Zugriffs

addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
  const act = await TRION_MAILING.get("accessdate")
  await TRION_MAILING.put("accessdate", JSON.stringify(new Date()))
  return new Response("Pre date:" + act)
}

Publizieren des Workers

$ wrangler publish
$ http https://mailing-worker.workerpoc.workers.dev
[2022-02-11 13:25:26] GET ... HTTP/1.1 200 OK
...
Pre date:"2022-02-15T10:02:15.952Z"

Das Ergebnis / Inhalte / Logs kann man sich in der Cloudflare Dash ausschauen:

$ x-www-browser https://dash.cloudflare.com/

Oder man schaut sich den Inhalt mit der Wrangler CLI an:

  • Auflisten der existierenden Schlüssel eines KV Stores

  • Holen eines Schlüsselwertes eines KV Stores

$ wrangler kv:key list --binding=TRION_MAILING
[{"name":"key"},{"name":"entry"},{"name":"accessdate"}]

$ wrangler kv:key get --binding=TRION_MAILING "accessdate"
"2022-02-15T10:02:46.356Z"




Zu den Themen Typescript, Webanwendungen, Angular (und vielen anderen) bieten wir sowohl Beratung, Entwicklungsunterstützung als auch passende Schulungen an:

Auch für Ihren individuellen Bedarf können wir Workshops und Schulungen anbieten. Sprechen Sie uns gerne an.

Feedback oder Fragen zu einem Artikel - per Twitter @triondevelop oder E-Mail freuen wir uns auf eine Kontaktaufnahme!

Zur Desktop Version des Artikels