Neidio i'r cynnwys

Haen we Cloudflare Workers

Rhedeg haen we Quire lai o ran nodweddion ar Cloudflare Workers.

Gweld fel Markdown

Mae’r dyluniad yn adran 6 o docs/architecture/23-ops.md. Mae Workers yn rhedeg haen we lai o ran nodweddion. Nid yw cydraddoldeb nodweddion ar Workers o fewn y cwmpas (adran 12 y PRD): mae’r hyn na all y targed hwn ei wneud yn cael ei wrthod wrth gychwyn, yn ôl enw.

Statws yn y datganiad hwn

Mae’r ffurfweddiad ar waith (apps/web/wrangler.jsonc, rhagosodiad Nitro cloudflare-module, pont Hyperdrive a gwiriadau cychwyn). Mae angen storfa sy’n gydnaws â S3 ar Worker ar gyfer R2 (QUIRE_STORAGE_DRIVER=s3), gyrrwr amser real ar draws ceisiadau (QUIRE_REALTIME_DRIVER=durable_objects neu centrifugo), storfa dros dro a rennir (QUIRE_CACHE_DRIVER=postgres neu valkey) a darparwr e-bost HTTP. Hebddynt mae’r Worker yn gwrthod cychwyn ac mae ei log yn enwi pob gosodiad. Mae gyrrwr Durable Objects yn gleient i’r Worker amser real yn apps/realtime-worker (un Durable Object fesul sianel ar gyfer dosbarthu, presenoldeb a hanes, un fesul person ar gyfer datgysylltiadau); defnyddiwch ef ochr yn ochr, fel isod, eu Centrifugo.

Y cydrannau

Cydran Ar Cloudflare
web Worker gyda nodejs_compat
Postgres Allanol, drwy Hyperdrive: HYPERDRIVE ar gyfer rôl y rhaglen, REPORT_HYPERDRIVE ar gyfer rôl yr adroddiad ar yr un gronfa ddata ffisegol. Mae’r haen we’n copïo pob llinyn cysylltiad i DATABASE_URL a QUIRE_REPORT_DATABASE_URL wrth gychwyn
Ffeiliau R2, drwy ei API S3 (S3_ENDPOINT=https://<account>.r2.cloudflarestorage.com); mae’r rhwymiad FILES yn atodi’r bwced
Gwaith cefndir pg-boss dros Hyperdrive pan fydd rhaid ciwio’r gwaith gyda gweithred ysgrifennu. Gyda QUIRE_QUEUE_DRIVER=cloudflare ar y worker cydymaith, mae’r gwaith ysgafn (hysbysiadau heb drefn a dosbarthiadau webhook) yn mynd drwy Cloudflare Queues yn lle hynny, felly ni pholir Postgres ar eu cyfer. Mae worker y cydymaith yn rhedeg y ddau
Amser real Y Worker amser real, apps/realtime-worker, gyda Durable Objects
worker, scheduler, collab, content, ClamAV, Gotenberg, ffmpeg Host cynwysyddion cydymaith. Ni all Worker eu rhedeg
Olrhain Arsylwadwyedd Workers, wedi’i alluogi yn wrangler.jsonc

Mae REPORT_HYPERDRIVE yn darparu rôl adrodd ar gyfer y gronfa ddata ffisegol a enwir gan HYPERDRIVE. Nid yw’r targed hwn yn gwasanaethu tenantiaid sydd wedi’u pinio i gronfeydd data ffisegol ychwanegol, fel y disgrifir isod.

Beth na all y targed hwn ei wneud

Gwrthodir wrth gychwyn, gyda phob problem wedi’i rhestru ar unwaith:

  • Dim SMTP. Defnyddiwch ddarparwr HTTP yn QUIRE_EMAIL_PROVIDER_CONFIG.
  • Dim disg lleol. Rhaid i QUIRE_STORAGE_DRIVER enwi storfa gwrthrychau.
  • Dim amser real na storfa dros dro yn y broses. Nid yw Workers yn rhannu cof rhwng ceisiadau, felly gwrthodir QUIRE_REALTIME_DRIVER=inprocess a QUIRE_CACHE_DRIVER=memory.
  • Dim ClamAV, Gotenberg na ffmpeg yn y Worker. Gwrthodir CLAMAV_URL, GOTENBERG_URL a FFMPEG_PATH a osodwyd ar y Worker; gosodwch nhw ar worker y cydymaith yn lle hynny.
  • Dim sefydliadau â chronfa ddata benodol. Mae rhwymiadau Hyperdrive Worker yn sefydlog adeg defnyddio, felly mae sefydliad â’i gronfa ddata ei hun yn cael tudalen glir “ddim ar gael yma”. Gwasanaethwch ef o Compose neu Vercel.

Ac un peth nad yw’n cael ei wrthod ond y mae’n rhaid ei wybod: nid yw cyn-rendro ac ail-gynhyrchu statig cynyddrannol yn gweithio ar Workers, beth bynnag a ddywed dogfennaeth y fframwaith. Mae pob llwybr yn cael ei rendro fesul cais.

Ar y targed hwn, cadwch drafodion yn fyr a pheidiwch byth â chadw un ar draws galwad rhwydwaith: mae Hyperdrive yn ailosod cyflwr sesiwn pan fydd cysylltiad yn dychwelyd i’r pwll, felly gosodir cyd-destun tenant fesul trafodiad.

Defnyddio

  1. Crëwch yr adnoddau:
    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
    Rhowch y ddau ID Hyperdrive yn apps/web/wrangler.jsonc.
  2. Gosodwch y cyfrinachau, un ar y tro gyda bun run --bun wrangler secret put <NAME> o apps/web: 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. Mae gosodiadau testun plaen (QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_DATABASE_ID, S3_ENDPOINT, S3_BUCKET, QUIRE_COLLAB_URL) yn perthyn yn vars.
  3. Adeiladwch a defnyddiwch o apps/web:
    NITRO_PRESET=cloudflare-module bun run build
    bun run --bun wrangler deploy
  4. Defnyddiwch y Worker amser real, gyda QUIRE_REALTIME_WORKER_SECRET yr haen we a’i gyfrinach tocyn fel QUIRE_REALTIME_TOKEN_SECRET (mae’r haen we’n llofnodi tocynnau amser real gyda’i QUIRE_REALTIME_TOKEN_SECRET ei hun, neu gyda QUIRE_SECRET_KEY pan nad yw hynny wedi’i osod; defnyddiwch felly pa un bynnag y mae’n ei ddefnyddio), a gosodwch QUIRE_REALTIME_WORKER_URL ar yr haen we i’w gyfeiriad:
    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. Ar gyfer gwaith ysgafn yn Cloudflare Queues, crëwch un ciw fesul ciw ysgafn a gosodwch y rhain ar y worker cydymaith (tocyn API gyda chaniatâd darllen ac ysgrifennu ar gyfer Queues):
    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
    QUIRE_QUEUE_DRIVER=cloudflare, CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_QUEUES_TOKEN, a QUIRE_QUEUE_PREFIX os nad quire- ydyw.
  6. Rhedeg host y cydymaith fel yng nghanllaw Vercel, cam 3. Mae mudo’n rhedeg yno cyn pob defnydd Worker.

Mae ffurfweddiad a wrthodir yn ymddangos yn bun run --bun wrangler tail fel “The web tier did not start on cloudflare”, ac yna pob gosodiad i’w newid.

Llywio

Teipiwch i chwilio…

↑↓ llywio↵ dewisEsc cau