Pereiti prie turinio

Tinklo sluoksnis Vercel

Vykdykite Quire tinklo sluoksnį Vercel su lydinčiu darbininku.

Rodyti kaip Markdown

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

  1. Sukurkite Vercel projektą iš saugyklos su Root Directory apps/web. apps/web/vercel.json nustato įdiegimo ir pastatymo komandas (NITRO_PRESET=vercel) ir tiekia /sw.js be podėlio.
  2. 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.
  3. Lydinčioje sistemoje paleiskite docker/compose.yaml be web paslaugos, su tuo pačiu docker/.env:
    docker compose -f docker/compose.yaml up -d migrate init worker scheduler collab content
    Migracijos ten vykdomos prieš kiekvieną Vercel diegimą.
  4. 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.

Navigacija

Įveskite norėdami ieškoti…

↑↓ naršyti↵ pasirinktiEsc uždaryti