Leum dhan t-susbaint

An t-sreath-lìn air Cloudflare Workers

Ruith sreath-lìn Quire lùghdaichte air Cloudflare Workers.

Seall mar Markdown

Tha an dealbhadh aig earrann 6 de docs/architecture/23-ops.md. Tha Workers a’ ruith sreath-lìn lùghdaichte. Chan eil co-ionannachd fheartan air Workers am broinn na h-obrach (earrann 12 den PRD): thèid na rudan nach urrainn don targaid seo a dhèanamh a dhiùltadh nuair a thòisicheas i, a rèir ainm.

Inbhe san tionndadh seo

Tha an rèiteachadh deiseil (apps/web/wrangler.jsonc, ro-shuidheachadh Nitro cloudflare-module, drochaid Hyperdrive agus sgrùdaidhean tòiseachaidh). Feumaidh Worker stòradh a tha co-chòrdail ri S3 airson R2 (QUIRE_STORAGE_DRIVER=s3), draibhear fìor-ùine thar iarrtasan (QUIRE_REALTIME_DRIVER=durable_objects no centrifugo), tasgadan co-roinnte (QUIRE_CACHE_DRIVER=postgres no valkey) agus solaraiche post-d HTTP. Mura h-eil iad ann, diùltas Worker tòiseachadh agus ainmichidh an log gach suidheachadh a tha a dhìth. ’S e cliant de Worker na fìor-ùine ann an apps/realtime-worker a th’ ann an draibhear Durable Objects (aon Durable Object gach seanail airson craoladh, làthaireachd is eachdraidh, agus aon gach neach airson dì-cheanglaidhean); cleachd e còmhla ri Worker na fìor-ùine mar gu h-ìosal, no cleachd Centrifugo.

Na pìosan

Pìos Air Cloudflare
web Worker le nodejs_compat
Postgres Taobh a-muigh, tro Hyperdrive: HYPERDRIVE airson dreuchd na h-aplacaid, REPORT_HYPERDRIVE airson dreuchd nan aithisgean air an aon stòr-dàta fiosaigeach. Nì an t-sreath-lìn lethbhreac de gach sreang ceangail gu DATABASE_URL agus QUIRE_REPORT_DATABASE_URL nuair a thòisicheas i
Faidhlichean R2 tron API S3 aige (S3_ENDPOINT=https://<account>.r2.cloudflarestorage.com); ceanglaidh an binding FILES am bucaid
Obraichean cùl-raoin pg-boss tro Hyperdrive nuair a dh’fheumas an obair a chur sa chiudha le sgrìobhadh. Le QUIRE_QUEUE_DRIVER=cloudflare air an neach-obrach companach, thèid na h-obraichean aotrom (lìbhrigeadh brathan is webhook gun òrdugh) tro Cloudflare Queues nan àite gus nach dèanar polladh orra ann am Postgres. Ruithidh an neach-obrach companach an dà chuid
Fìor-ùine Worker na fìor-ùine, apps/realtime-worker, le Durable Objects
worker, scheduler, collab, content, ClamAV, Gotenberg, ffmpeg Aoigh chompanaich airson soithichean. Chan urrainn do Worker an ruith
Tracadh Amharcachd Workers, air a cur air ann an wrangler.jsonc

Tha REPORT_HYPERDRIVE a’ toirt seachad dreuchd nan aithisgean airson an stòir-dàta fiosaigeach a tha HYPERDRIVE ag ainmeachadh. Chan eil an targaid seo a’ frithealadh luchd-gabhail a tha ceangailte ri stòran-dàta fiosaigeach eile, mar a tha air a mhìneachadh gu h-ìosal.

Rudan nach urrainn don targaid seo a dhèanamh

Thèid an rèiteachadh a dhiùltadh aig tòiseachadh agus thèid gach duilgheadas ainmeachadh còmhla:

  • Gun SMTP. Cleachd solaraiche HTTP ann an QUIRE_EMAIL_PROVIDER_CONFIG.
  • Gun diosg ionadail. Feumaidh QUIRE_STORAGE_DRIVER stòradh nithean ainmeachadh.
  • Gun fhìor-ùine no tasgadan sa phròiseas. Chan eil cuimhne cho-roinnte aig Workers eadar iarrtasan, agus mar sin thèid QUIRE_REALTIME_DRIVER=inprocess agus QUIRE_CACHE_DRIVER=memory a dhiùltadh.
  • Gun ClamAV, Gotenberg no ffmpeg am broinn Worker. Thèid CLAMAV_URL, GOTENBERG_URL agus FFMPEG_PATH a chaidh a chur air Worker a dhiùltadh; cuir iad air an neach-obrach companach an àite sin.
  • Gun bhuidhnean le stòr-dàta sònraichte. Tha bindings Hyperdrive aig Worker suidhichte aig àm cleachdaidh; mar sin gheibh buidheann le stòr-dàta fhèin duilleag shoilleir ag ràdh “chan eil e ri fhaighinn an seo”. Fritheil i bho Compose no Vercel.

Agus aon rud nach tèid a dhiùltadh ach air am feum thu fios a bhith agad: chan obraich prerendering no ath-ghineadh statach mean air mhean air Workers, ge bith dè tha ann an sgrìobhainnean a’ chreata. Thèid gach slighe a dhèanamh às ùr gach iarrtas.

Air an targaid seo, cùm gnothaichean goirid agus na cum fear thar gairm lìonra: ath-shuidhichidh Hyperdrive staid an t-seisein nuair a thilleas ceangal dhan amar, agus mar sin suidhichear co-theacsa an neach-gabhail gach gnothach.

Cleachdadh

  1. Cruthaich na goireasan:
    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
    Cuir an dà ID Hyperdrive ann an apps/web/wrangler.jsonc.
  2. Suidhich na dìomhaireachdan, aon turas aig an aon àm le bun run --bun wrangler secret put <NAME> bho 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. Cuir roghainnean àbhaisteach (QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_DATABASE_ID, S3_ENDPOINT, S3_BUCKET, QUIRE_COLLAB_URL) ann an vars.
  3. Tog is cleachd e bho apps/web:
    NITRO_PRESET=cloudflare-module bun run build
    bun run --bun wrangler deploy
  4. Cleachd Worker na fìor-ùine, leis an t-sreath-lìn QUIRE_REALTIME_WORKER_SECRET agus an dìomhaireachd tòcan aige mar QUIRE_REALTIME_TOKEN_SECRET (soidhnidh an t-sreath-lìn tòcan fìor-ùine leis an QUIRE_REALTIME_TOKEN_SECRET aice fhèin, no le QUIRE_SECRET_KEY mura h-eil sin air a shuidheachadh; cleachd mar sin ge bith dè tha i a’ cleachdadh), agus suidhich QUIRE_REALTIME_WORKER_URL air an t-sreath-lìn gu seòladh an Worker:
    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. Airson obraichean aotrom ann an Cloudflare Queues, cruthaich ciudha airson gach ciudha aotrom agus suidhich iad sin air an neach-obrach companach (tòcan API le cead leughaidh is sgrìobhaidh 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
    Cuir QUIRE_QUEUE_DRIVER=cloudflare, CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_QUEUES_TOKEN agus QUIRE_QUEUE_PREFIX ris mura h-eil an ro-leasachan quire-.
  6. Ruith an aoigh companach mar ann an ceum 3 de stiùireadh Vercel. Thèid imrich a ruith an sin mus cleachdar Worker gach turas.

Nochdaidh rèiteachadh a chaidh a dhiùltadh ann an bun run --bun wrangler tail mar “The web tier did not start on cloudflare”, agus an uair sin liosta nan roghainnean ri atharrachadh.

Seòladh

Sgrìobh airson lorg…

↑↓ gluais↵ taghEsc dùin