Projekto aprašas yra docs/architecture/23-ops.md 5 skyrius. Vercel vykdo
tik tinklo sluoksnį. Visa kita veikia lydinčioje sistemoje, kurią valdote jūs,
ir tai nėra pasirenkama.
Šios versijos būsena
Konfigūracija yra vietoje (apps/web/vercel.json, vercel Nitro nustatymas
ir paleidimo patikros). Vercel reikia bendrinamos failų saugyklos
(QUIRE_STORAGE_DRIVER=s3 arba azure), realiojo laiko variklio, veikiančio
tarp funkcijų instancijų (QUIRE_REALTIME_DRIVER=sse arba centrifugo), ir
HTTP el. pašto teikėjo. Be jų tinklo sluoksnis atsisako paleisti, o jo
žurnale išvardijamas kiekvienas trūkstamas nustatymas.
Dalys
Dalis
Kur veikia
web
Vercel Functions, Node vykdyklė: puslapiai, REST, MCP, LTI, gauti „webhooks“
worker, scheduler, collab, content
Lydimoji sistema: Fly, Railway, ECS arba jūsų paties Docker sistema su docker/compose.yaml
Postgres
Išorinis, už transakcijų ryšių baseino įėjimo (proxy): Neon, Supabase arba RDS su PgBouncer
Failai
S3 arba R2. Nuolatinio disko nėra
Fono užduotys
Į eilę dedamos su pg-boss užklausos transakcijos viduje, vykdomos lydinčio darbininko. Kai lydinčiam darbininkui nustatytas QUIRE_QUEUE_DRIVER=vercel, lengvos užduotys (netvarkingos pranešimų ir „webhook“ pristatymai) eina per Vercel Queues (VERCEL_QUEUE_REGION, VERCEL_QUEUE_TOKEN), todėl joms nereikia nuolat tikrinti bendrinamo Postgres
Pasikartojančios užduotys
Lydimasis tvarkytuvas. Vercel Cron maršruto nėra, nes cron, atliekantis darbą funkcijos viduje, baigiasi laiku
Pėdsakų sekimas
OpenTelemetry į jūsų rinktuvą, OTEL_EXPORTER_OTLP_ENDPOINT
Ko šis tikslas negali daryti
Tinklo sluoksnis tai patikrina paleisdamas ir atsisako, įvardindamas kiekvieną
problemą, vietoj to, kad vėliau nesėkmingai suveiktų pirmasis niekada
neišsiunčiamas el. laiškas:
Nėra SMTP. Vercel blokuoja išeinamąjį SMTP. Nustatykite
QUIRE_EMAIL_PROVIDER_CONFIG į HTTP teikėją (Postmark, SES, Mailgun,
SendGrid arba Resend). QUIRE_SMTP_URL atmetamas.
Nėra vietinio disko.QUIRE_STORAGE_DRIVER=local atmetamas.
Nėra bendrinamos atminties tarp paleidimų.QUIRE_REALTIME_DRIVER=inprocess atmetamas. Serverio siunčiami įvykiai
ribojami funkcijos laiko limitu; klientas prisijungia iš naujo su
žymekliu, todėl nė vienas įvykis neprarandamas, bet buvimas neprieinamas.
Pririštių nuomininkų duomenų bazės ribojamos maždaug iki aštuonių,
nes kiekviena jų yra dar vienas ryšių baseinas aplinkoje, kuri negali
baseinų dalintis.
Diegimas
Sukurkite Vercel projektą iš saugyklos su Root Directoryapps/web.
apps/web/vercel.json nustato įdiegimo ir pastatymo komandas
(NITRO_PRESET=vercel) ir tiekia /sw.js be podėlio.
Nustatykite kintamuosius. Iš docker/.env.example bent jau:
QUIRE_DEPLOY_TARGET=vercel, QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN,
QUIRE_PLATFORM_DOMAINS, QUIRE_SECRET_KEY, QUIRE_MASTER_KEY,
DATABASE_URL (ryšių baseino įėjimo adresas), QUIRE_REPORT_DATABASE_URL,
QUIRE_AUDIT_DATABASE_URL, QUIRE_DATABASE_ID,
QUIRE_EMAIL_PROVIDER_CONFIG, QUIRE_MAIL_FROM, saugyklos nustatymus
ir QUIRE_COLLAB_URL bei QUIRE_COLLAB_SIGNING_KEY, nurodančius į
lydinčios sistemos bendradarbiavimo paslaugą.
QUIRE_REPORT_DATABASE_URL priklauso fizinei duomenų bazei, kurią nurodo
DATABASE_URL. Kiekvienai papildomai registruotai duomenų bazei pridėkite
jos pačios quire_report ryšio URL tiek į web, tiek į worker aplinkas, tada
užregistruokite jos kintamojo pavadinimą kaip env:NAME platformos
konsolėje. Analitika neveiks, jei tos duomenų bazės ataskaitų URL trūks.
Lydinčioje sistemoje paleiskite docker/compose.yaml be web paslaugos, su
tuo pačiu docker/.env:
Migracijos ten vykdomos prieš kiekvieną Vercel diegimą.
Paleiskite diegimą. Atmetus konfigūraciją, funkcijos žurnalas prasideda
fraze “The web tier did not start on vercel” ir išvardija kiekvieną
nustatymą, kurį reikia pakeisti.
Atnaujinimas
Pirmiausia atlikite migraciją lydinčioje sistemoje, tada paleiskite naują Vercel
diegimą, tada atnaujinkite lydinčios sistemos darbininkus: tvarką rasite
upgrade.md. Vercel momentinis atšaukimas yra kodo atšaukimas ir
visada saugus tos pačios versijos viduje.