Hönnunin er í docs/architecture/23-ops.md kafla 6. Workers keyra skert
vefþrep. Eigindajafnræði á Workers er utan gildissviðs (PRD kafli 12): því
sem þetta markumhverfi getur ekki er hafnað þegar það ræsir, með nafni.
Staðan í þessari útgáfu
Uppsetningin er til staðar (apps/web/wrangler.jsonc, cloudflare-module
Nitro-forstillingin, Hyperdrive-brúin og ræsingarathuganirnar). Worker þarf
S3-samhæfða geymslu fyrir R2 (QUIRE_STORAGE_DRIVER=s3), rauntímarekil
þvert á beiðnir (QUIRE_REALTIME_DRIVER=durable_objects eða centrifugo),
sameiginlegt skyndiminni (QUIRE_CACHE_DRIVER=postgres eða valkey) og
tölvupóstveitu yfir HTTP. Án þeirra neitar Workerinn að ræsa og annállinn
nefnir hverja stillingu. Durable Objects-rekillinn er biðlari rauntíma-
Workersins í apps/realtime-worker (einn Durable Object á hverja rás fyrir
útvarp, viðveru og sögu, einn á hverja manneskju fyrir aftengingar); settu
hann upp með, eins og hér að neðan, eða notaðu Centrifugo.
Hlutarnir
Hlutur
Á Cloudflare
web
Worker með nodejs_compat
Postgres
Ytri, náð í gegnum Hyperdrive: HYPERDRIVE fyrir forritshlutverkið, REPORT_HYPERDRIVE fyrir skýrsluhlutverkið á sama líkamlega gagnagrunni. Vefþrepið afritar hvorn tengistreng í DATABASE_URL og QUIRE_REPORT_DATABASE_URL þegar það ræsir
Skrár
R2, í gegnum S3-forritaskil þess (S3_ENDPOINT=https://<account>.r2.cloudflarestorage.com); FILES-bindingin tengir fötu
Bakgrunnsverk
pg-boss yfir Hyperdrive þegar verkið verður að setja í biðröð með skrifum. Með QUIRE_QUEUE_DRIVER=cloudflare á fylgdarvinnsluvélinni fara léttu verkin (óraðaðar tilkynningar og vefkrókasendingar) í gegnum Cloudflare Queues í staðinn, svo Postgres er ekki kannað fyrir þau. Fylgdarvinnsluvélin keyrir bæði
Rauntími
Rauntíma-Workerinn, apps/realtime-worker, með Durable Objects
Fylgdarhýsill fyrir gáma. Worker getur ekki keyrt þau
Rekjanleiki
Workers-virðisaukning, kveikt í wrangler.jsonc
REPORT_HYPERDRIVE gefur skýrsluhlutverkið fyrir líkamlega gagnagrunninn sem
HYPERDRIVE nefnir. Þetta markumhverfi þjónar ekki leigjendum sem eru festir
við viðbótargagnagrunna, eins og lýst er hér að neðan.
Hvað þetta markumhverfi getur ekki
Hafnað við ræsingu, með öll vandamál talin upp í einu:
Enginn SMTP. Notaðu HTTP-veitu í QUIRE_EMAIL_PROVIDER_CONFIG.
Enginn staðbundinn diskur.QUIRE_STORAGE_DRIVER verður að nefna hlutageymslu.
Enginn rauntími eða skyndiminni í ferli. Workers deila engu minni milli
beiðna, svo QUIRE_REALTIME_DRIVER=inprocess og
QUIRE_CACHE_DRIVER=memory er hafnað.
Enginn ClamAV, Gotenberg eða ffmpeg í Workernum.CLAMAV_URL,
GOTENBERG_URL og FFMPEG_PATH stillt á Workernum er hafnað; stilltu þau á
fylgdarvinnsluvélinni í staðinn.
Engar stofnanir með sér gagnagrunn. Hyperdrive-bindingar Workers eru
fastar við útgáfu, svo stofnun með eigin gagnagrunn fær skýra síðu um að
þjónustan sé „ótiltæk hér“. Þjónaðu henni frá Compose eða Vercel.
Og eitt sem er ekki hafnað en verður að vita: forvinnsla og
stigvaxandi endurmyndun virka ekki á Workers, hvað sem skjöl rammapsins
segja. Hver leið er mynduð við hverja beiðni.
Á þessu markumhverfi skaltu halda viðskiptum stuttum og aldrei halda einu
þvert á netkall: Hyperdrive endur stillir setulotur þegar tenging fer aftur í
púllarann, svo leigjendasamhengið er stillt við hvert viðskipti.
Uppsetning
Stofnaðu tilföngin:
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-filesbun run --bun wrangler queues create quire-jobs
Settu Hyperdrive-auðkenninu tvö í apps/web/wrangler.jsonc.
Stilltu leyndarmálin, eitt í einu með bun run --bun wrangler secret put <NAME> frá
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. Einföld
stillingar (QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS,
QUIRE_DATABASE_ID, S3_ENDPOINT, S3_BUCKET, QUIRE_COLLAB_URL) fara í
vars.
Byggðu og settu út frá apps/web:
NITRO_PRESET=cloudflare-module bun run buildbun run --bun wrangler deploy
Settu út rauntíma-Workerinn, með QUIRE_REALTIME_WORKER_SECRET vefþrepsins
og táknleyndarmál þess sem QUIRE_REALTIME_TOKEN_SECRET (vefþrepið undirritar
rauntímatákn með eigin QUIRE_REALTIME_TOKEN_SECRET, eða með
QUIRE_SECRET_KEY þegar það er óstillt, svo notaðu hvort það notar), og stilltu
QUIRE_REALTIME_WORKER_URL á vefþrepinu á vistfang þess:
cd apps/realtime-workerbun run --bun wrangler secret put QUIRE_REALTIME_WORKER_SECRETbun run --bun wrangler secret put QUIRE_REALTIME_TOKEN_SECRETbun run --bun wrangler deploy
Fyrir létt verk á Cloudflare Queues skaltu stofna eina biðröð fyrir hverja
létta biðröð og stilla þetta á fylgdarvinnsluvélinni (API-tákn með lestri og
skrifum í Queues):
bun run --bun wrangler queues create quire-events-notificationsbun run --bun wrangler queues create quire-events-notifications-deadbun run --bun wrangler queues create quire-events-webhooksbun run --bun wrangler queues create quire-events-webhooks-dead
QUIRE_QUEUE_DRIVER=cloudflare, CLOUDFLARE_ACCOUNT_ID,
CLOUDFLARE_QUEUES_TOKEN og QUIRE_QUEUE_PREFIX ef ekki quire-.
Keyrðu fylgdarhýsilinn eins og í Vercel-leiðbeiningunum, skrefi 3.
Flutningar keyra þar, fyrir hverja Worker-útgáfu.
Hafnaðri uppsetningu sést í bun run --bun wrangler tail sem „The web tier did
not start on cloudflare“, fylgt eftir með hverri stillingu til að breyta.