Ugrás a tartalomhoz

A webes réteg Cloudflare Workersen

A Quire csökkentett webes rétegének futtatása Cloudflare Workersen.

A kialakítást a docs/architecture/23-ops.md 6. szakasza ismerteti. A Workers csökkentett webes réteget futtat. A teljes funkcióegyezés nem cél Workersen (PRD 12. szakasz); amit ez a célkörnyezet nem tud, azt induláskor név szerint elutasítja.

Állapot ebben a kiadásban

A konfiguráció rendelkezésre áll (apps/web/wrangler.jsonc, a cloudflare-module Nitro-előbeállítás, a Hyperdrive-kapcsoló és indítási ellenőrzések). A Workernek S3-kompatibilis tárolás kell az R2-höz (QUIRE_STORAGE_DRIVER=s3), kérések között használható realtime driver (QUIRE_REALTIME_DRIVER=durable_objects vagy centrifugo), megosztott gyorsítótár (QUIRE_CACHE_DRIVER=postgres vagy valkey) és HTTP-s e-mail-szolgáltató. Ezek nélkül a Worker nem indul, és a napló megnevezi a hiányzó beállításokat. A Durable Objects driver az apps/realtime-worker realtime Worker kliensét használja (csatornánként egy Durable Object továbbításhoz, jelenléthez és előzményekhez, személyenként egy a leválasztáshoz); telepítse vele együtt az alábbiak szerint, vagy használjon Centrifugót.

Összetevők

Összetevő A Cloudflare-en
web nodejs_compat-ot használó Worker
Postgres Külső, Hyperdrive-on keresztül: HYPERDRIVE az alkalmazásszerepkörhöz, REPORT_HYPERDRIVE ugyanazon fizikai adatbázis jelentési szerepköréhez. Induláskor a webes réteg minden kapcsolati karakterláncot DATABASE_URL és QUIRE_REPORT_DATABASE_URL értékként másol be
Fájlok R2 az S3 API-n keresztül (S3_ENDPOINT=https://<account>.r2.cloudflarestorage.com); a FILES kötés kapcsolja hozzá a bucketet
Háttérfeladatok pg-boss Hyperdrive-on át, ha a feladatot írással egy tranzakcióban kell sorba állítani. A kiegészítő worker QUIRE_QUEUE_DRIVER=cloudflare beállításával az egyszerű feladatok (nem sorrendhez kötött értesítések és webhookkézbesítések) Cloudflare Queues-en futnak, így ezek miatt nem ellenőrzi a Postgres-sorokat. A kiegészítő worker mindkét típust futtatja
Realtime Realtime Worker, apps/realtime-worker, Durable Objects használatával
worker, scheduler, collab, content, ClamAV, Gotenberg, ffmpeg Kiegészítő konténerhost. A Worker nem tudja futtatni őket
Nyomkövetés Workers megfigyelhetőség, a wrangler.jsonc fájlban engedélyezve

A REPORT_HYPERDRIVE a HYPERDRIVE által megadott fizikai adatbázis jelentési szerepkörét biztosítja. Ez a célkörnyezet nem szolgál ki további fizikai adatbázishoz rögzített tenantokat, ahogy lentebb olvasható.

Amit ez a célkörnyezet nem tud

Induláskor minden problémát egyszerre felsorolva elutasítja a beállítást:

  • Nincs SMTP. Használjon HTTP-s szolgáltatót a QUIRE_EMAIL_PROVIDER_CONFIG beállításban.
  • Nincs helyi lemez. A QUIRE_STORAGE_DRIVER értékének objektumtárolót kell megadnia.
  • Nincs folyamaton belüli realtime vagy gyorsítótár. A Workers nem oszt meg memóriát a kérések között, ezért elutasítja a QUIRE_REALTIME_DRIVER=inprocess és QUIRE_CACHE_DRIVER=memory értékeket.
  • A Workerben nincs ClamAV, Gotenberg vagy ffmpeg. A Worker környezetében megadott CLAMAV_URL, GOTENBERG_URL és FFMPEG_PATH elutasított; állítsa be őket a kiegészítő workeren.
  • Nincsenek dedikált adatbázisú szervezetek. A Worker Hyperdrive-kötései telepítéskor rögzülnek, ezért a saját adatbázissal rendelkező szervezet érthető „unavailable here” oldalt kap. Szolgálja ki Compose-ról vagy Vercelről.

Egy további tudnivaló, amelyet nem utasít el: a prerenderelés és a fokozatos statikus újragenerálás nem működik Workersen, akármit is ír a keretrendszer dokumentációja. Minden útvonal kérésenként renderelődik.

Ezen a célkörnyezeten tartsa röviden a tranzakciókat, és soha ne tartson nyitva tranzakciót hálózati hívás alatt: a Hyperdrive visszaállítja a munkamenet állapotát, amikor a kapcsolat visszakerül a poolba, ezért a tenant kontextusát tranzakciónként kell beállítani.

Üzembe helyezés

  1. Hozza létre az erőforrásokat:
    bun run --bun wrangler hyperdrive create quire-app --connection-string="postgres://quire_app:...@db.example.com:5432/quire"
    bun run --bun wrangler hyperdrive create quire-report --connection-string="postgres://quire_report:...@db.example.com:5432/quire"
    bun run --bun wrangler r2 bucket create quire-files
    bun run --bun wrangler queues create quire-jobs
    Helyezze a két Hyperdrive-azonosítót az apps/web/wrangler.jsonc fájlba.
  2. Az egyes titkok beállításához futtassa a bun run --bun wrangler secret put <NAME> parancsot az apps/web mappából: QUIRE_SECRET_KEY, QUIRE_MASTER_KEY, QUIRE_EMAIL_PROVIDER_CONFIG, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, QUIRE_COLLAB_SIGNING_KEY, QUIRE_REALTIME_WORKER_SECRET. Az egyszerű beállításokat (QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_DATABASE_ID, S3_ENDPOINT, S3_BUCKET, QUIRE_COLLAB_URL) a vars alatt adja meg.
  3. Az apps/web mappából építse és telepítse:
    NITRO_PRESET=cloudflare-module bun run build
    bun run --bun wrangler deploy
  4. Telepítse a realtime Workert a webes réteg QUIRE_REALTIME_WORKER_SECRET értékével és annak tokenjét QUIRE_REALTIME_TOKEN_SECRET néven (a webes réteg saját QUIRE_REALTIME_TOKEN_SECRET értékével, ennek hiányában pedig QUIRE_SECRET_KEY értékkel írja alá a realtime tokeneket; használja ugyanazt), majd állítsa be a webes rétegben a QUIRE_REALTIME_WORKER_URL értékét a Worker címére:
    cd apps/realtime-worker
    bun run --bun wrangler secret put QUIRE_REALTIME_WORKER_SECRET
    bun run --bun wrangler secret put QUIRE_REALTIME_TOKEN_SECRET
    bun run --bun wrangler deploy
  5. A Cloudflare Queues egyszerű feladatainak használatához hozzon létre sort minden egyszerű queue-hoz, és állítsa be őket a kiegészítő workeren (Queues írási és olvasási jogosultságú API-token szükséges):
    bun run --bun wrangler queues create quire-events-notifications
    bun run --bun wrangler queues create quire-events-notifications-dead
    bun run --bun wrangler queues create quire-events-webhooks
    bun run --bun wrangler queues create quire-events-webhooks-dead
    Állítsa be a QUIRE_QUEUE_DRIVER=cloudflare, CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_QUEUES_TOKEN értékeket, valamint a QUIRE_QUEUE_PREFIX értékét, ha az nem quire-.
  6. Futtassa a kiegészítő hostot a Vercel-útmutató 3. lépése szerint. A migrációk itt futnak le minden Worker-telepítés előtt.

Hibás konfigurációnál az bun run --bun wrangler tail kimenete ezt mutatja: “The web tier did not start on cloudflare”, majd felsorolja a módosítandó beállításokat.

Navigáció

Írjon a kereséshez…

↑↓ navigálás↵ kiválasztásEsc bezárás