Tsallaka zuwa abin da ke ciki

Sashen yanar gizo a Cloudflare Workers

Gudanar da ragewar sashen yanar gizo na Quire a Cloudflare Workers.

Tsarin yana cikin sashen 6 na docs/architecture/23-ops.md. Workers suna gudanar da sashen yanar gizo mai rage ayyuka. Daidaita duk fasaloli ba ya cikin iyaka (sashen 12 na PRD): abin da wannan manufa ba za ta iya yi ba ana ƙin sa lokacin farawa, ta suna.

Matsayi a wannan siga

An shirya saituna (apps/web/wrangler.jsonc, saitin Nitro na cloudflare-module, gadajin Hyperdrive da gwaje-gwajen farawa). Worker yana buƙatar ma’ajiyar da ta dace da S3 ga R2 (QUIRE_STORAGE_DRIVER=s3), na’urar ainihin-lokaci tsakanin buƙatu (QUIRE_REALTIME_DRIVER=durable_objects ko centrifugo), ma’ajiyar bayanai da aka raba (QUIRE_CACHE_DRIVER=postgres ko valkey) da mai aika imel ta HTTP. Idan ba su nan, Worker zai ƙi farawa, log ɗinsa kuma zai bayyana saitunan. Na’urar Durable Objects abokin ciniki ne na Worker ainihin-lokaci a apps/realtime-worker (Durable Object ɗaya ga kowane tashar don rabawa, kasancewa a halin yanzu da tarihi; ɗaya ga kowane mutum don cire haɗi); tura shi tare da wannan sashen kamar yadda aka nuna a ƙasa, ko amfani da Centrifugo.

Sassan tsarin

Sashe A Cloudflare
web Worker mai nodejs_compat
Postgres Na waje, ta Hyperdrive: HYPERDRIVE ga matsayin manhaja, REPORT_HYPERDRIVE ga matsayin rahoto a wannan ma’ajiya ta zahiri. Sashen yanar gizo yana kwafi kowace hanyar haɗi zuwa DATABASE_URL da QUIRE_REPORT_DATABASE_URL lokacin farawa
Fayiloli R2 ta API ɗinsa na S3 (S3_ENDPOINT=https://<account>.r2.cloudflarestorage.com); haɗin FILES yana haɗa bokiti
Ayyukan baya pg-boss ta Hyperdrive idan dole a saka aiki tare da rubutawa. Idan mai aikin rakiya yana da QUIRE_QUEUE_DRIVER=cloudflare, ayyukan sauƙi (sanarwa mara jeri da isar da webhook) suna tafiya ta Cloudflare Queues, don haka ba a duba Postgres domin su. Mai aikin rakiya ne ke gudanar da duka
Ainihin-lokaci Worker ainihin-lokaci, apps/realtime-worker, tare da Durable Objects
worker, scheduler, collab, content, ClamAV, Gotenberg, ffmpeg Mai ɗaukar kwantena na rakiya. Worker ba zai iya gudanar da su ba
Bibiya Binciken Workers, ana kunnawa a wrangler.jsonc

REPORT_HYPERDRIVE yana samar da matsayin rahoto ga ma’ajiya ta zahiri da aka ambata a HYPERDRIVE. Wannan manufa ba ta hidimar da aka ɗora wa ƙarin ma’ajiyoyi na zahiri kamar yadda aka bayyana a ƙasa.

Abin da wannan manufa ba za ta iya yi ba

Ana ƙin su lokacin farawa, tare da lissafa duk matsaloli a lokaci guda:

  • Babu SMTP. Yi amfani da mai aika HTTP a QUIRE_EMAIL_PROVIDER_CONFIG.
  • Babu faifan gida. Dole QUIRE_STORAGE_DRIVER ya nuna ajiyar abu.
  • Babu ainihin-lokaci ko ma’ajiyar ƙwaƙwalwa ta cikin tsari. Workers ba sa raba ƙwaƙwalwa tsakanin buƙatu, don haka ana ƙin QUIRE_REALTIME_DRIVER=inprocess da QUIRE_CACHE_DRIVER=memory.
  • Babu ClamAV, Gotenberg ko ffmpeg a Worker. Ana ƙin CLAMAV_URL, GOTENBERG_URL da FFMPEG_PATH idan an saita su a Worker; ka saita su a wurin mai aikin rakiya.
  • Babu ƙungiyoyin da ke da ma’ajiya ta musamman. An kulle haɗin Hyperdrive na Worker lokacin turawa, saboda haka ƙungiyar da ke da nata ma’ajiya tana samun shafin bayani “babu a nan”. Yi mata hidima ta Compose ko Vercel.

Ga abu guda da ba a ƙi amma dole a sani: sake gina shafi kafin lokaci da sake gina sassa masu sauyawa ba sa aiki a Workers, ko mene ne takardun bayanin tsarin suka ce. Ana gina kowace hanya a kowane buƙata.

A wannan manufa a taƙaita ma’amaloli, kada a riƙe ɗaya yayin kiran hanyar sadarwa: Hyperdrive yana sake saita matsayin zaman idan haɗi ya koma tafkin, saboda haka ana saita mahallin ƙungiya ga kowace ma’amala.

Tura sigar

  1. Ƙirƙiri albarkatun:
    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
    Saka ID na Hyperdrive guda biyu a apps/web/wrangler.jsonc.
  2. Saita sirri, ɗaya bayan ɗaya ta bun run --bun wrangler secret put <NAME> daga 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. Saitunan fili (QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_DATABASE_ID, S3_ENDPOINT, S3_BUCKET, QUIRE_COLLAB_URL) suna cikin vars.
  3. Gina ka tura daga apps/web:
    NITRO_PRESET=cloudflare-module bun run build
    bun run --bun wrangler deploy
  4. Tura Worker na ainihin-lokaci, tare da QUIRE_REALTIME_WORKER_SECRET na sashen yanar gizo da alamar sa hannu a matsayin QUIRE_REALTIME_TOKEN_SECRET (sashen yanar gizo yana sa hannu ga alamomin ainihin-lokaci da nasa QUIRE_REALTIME_TOKEN_SECRET, ko QUIRE_SECRET_KEY idan ba a saita na farko ba; yi amfani da wanda yake amfani da shi), sannan saita adireshinsa ga QUIRE_REALTIME_WORKER_URL a sashen yanar gizo:
    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. Ga ayyuka masu sauƙi a Cloudflare Queues, ƙirƙiri jerin guda ga kowane jerin aiki mai sauƙi, sannan saita waɗannan a wurin mai aikin rakiya (alamar API mai izinin karatu da rubutawa na 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
    Saita QUIRE_QUEUE_DRIVER=cloudflare, CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_QUEUES_TOKEN, da QUIRE_QUEUE_PREFIX idan ba quire- ba ne.
  6. Gudanar da uwar garken rakiya kamar mataki na 3 a jagorar Vercel. Ana gudanar da ƙaura a can kafin kowace turawar Worker.

A saitin da aka ƙi yana bayyana a bun run --bun wrangler tail da rubutun “The web tier did not start on cloudflare”, sai jerin saitunan da za a canza.

Kewayawa

Rubuta don nema…

↑↓ kewaya↵ zaɓaEsc rufe