TASIOMIND.DEV — OPERATIONAL▸▸▸FULL STACK DEVELOPER @ GWQ SERVICEPLUS AG▸▸▸FOUNDER — K8SGPT.AI▸▸▸OPEN SOURCE: ACTIVE▸▸▸DISTRIBUTED SYSTEMS / KUBERNETES / AI▸▸▸RUST + GO + PYTHON▸▸▸FIELD TESTED / STATUS — NOMINAL▸▸▸LOCATION: EUROPE/BERLIN▸▸▸TASIOMIND.DEV — OPERATIONAL▸▸▸FULL STACK DEVELOPER @ GWQ SERVICEPLUS AG▸▸▸FOUNDER — K8SGPT.AI▸▸▸OPEN SOURCE: ACTIVE▸▸▸DISTRIBUTED SYSTEMS / KUBERNETES / AI▸▸▸RUST + GO + PYTHON▸▸▸FIELD TESTED / STATUS — NOMINAL▸▸▸LOCATION: EUROPE/BERLIN▸▸▸

Notes on Cloudflare Workers

December 12, 2021

Kurzuebersicht

Cloudflare Workers sind Edge Funktionen, die sehr nah am Nutzer laufen. Ideal fuer leichte APIs, Redirects, Auth, Caching.

Setup

code
# Wrangler CLI installieren
npm i -g @cloudflare/wrangler
wrangler login

Projekt erstellen:

code
wrangler init my-worker
cd my-worker
wrangler dev

Deploy

code
wrangler publish

Debugging

Logs live anzeigen:

code
wrangler tail

Alles was console.log() schreibt, erscheint im Log Stream.

Secrets

code
wrangler secret put MY_SECRET
wrangler secret list
wrangler secret delete MY_SECRET

Im Code:

code
export default {
  async fetch(request, env) {
    const token = env.MY_SECRET;
    return new Response(token);
  },
};

KV (Key-Value Storage)

Namespace anlegen:

code
wrangler kv:namespace create "MY_KV"

wrangler.toml Eintrag (Achtung: kv-namespaces mit Bindestrich):

code
kv-namespaces = [
  { binding = "MY_KV", id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx" }
]

TypeScript Binding:

code
export {};
declare global {
  const MY_KV: KVNamespace;
}

Nutzung:

code
const value = await MY_KV.get("key");

Routes

code
routes = ["mydomain.com/*", "www.mydomain.com/*"]

Wildcard fuer Subdomains:

code
routes = ["*.mydomain.com/*"]

Ressourcen