Məzmunu keç

Vercel-də web qatı

Quire web qatını əlavə worker ilə Vercel-də işlədin.

Markdown kimi göstər

Dizayn docs/architecture/23-ops.md sənədinin 5-ci bölməsindədir. Vercel yalnız web qatını işlədir. Qalan hər şey sizin idarə etdiyiniz əlavə hostda işləyir və bu məcburidir.

Bu buraxılışın vəziyyəti

Konfiqurasiya hazırdır (apps/web/vercel.json, vercel Nitro preset-i və başlanğıc yoxlamaları). Vercel üçün paylaşılan fayl saxlama (QUIRE_STORAGE_DRIVER=s3 və ya azure), funksiya instansiyaları arasında işləyən real vaxt sürücüsü (QUIRE_REALTIME_DRIVER=sse və ya centrifugo) və HTTP e-poçt provayderi lazımdır. Bunlar yoxdursa, web qatı başlamağı rədd edir və jurnalında çatışmayan parametrləri sadalayır.

Hissələr

Hissə Harada işləyir
web Vercel Functions, Node icra mühiti: səhifələr, REST, MCP, LTI, alınan vebhuklar
worker, scheduler, collab, content Əlavə host: Fly, Railway, ECS və ya docker/compose.yaml işlədən öz Docker hostunuz
Postgres Xarici, tranzaksiya pooler-i arxasında: PgBouncer-li Neon, Supabase və ya RDS
Fayllar S3 və ya R2. Davamlı disk yoxdur
Fon tapşırıqları Sorğunun tranzaksiyasında pg-boss ilə növbəyə alınır, əlavə worker işlədir. Əlavə worker-də QUIRE_QUEUE_DRIVER=vercel olduqda yüngül tapşırıqlar (sıralanmamış bildiriş və vebhuk çatdırılmaları) Vercel Queues (VERCEL_QUEUE_REGION, VERCEL_QUEUE_TOKEN) vasitəsilə gedir, beləliklə, pool edilmiş Postgres bu işlər üçün sorğulanmır
Təkrarlanan tapşırıqlar Əlavə scheduler. Funksiya daxilində iş görən cron vaxtı aşdığına görə Vercel Cron marşrutu yoxdur
İzləmə Öz toplayıcınıza OpenTelemetry, OTEL_EXPORTER_OTLP_ENDPOINT vasitəsilə

Bu hədəfin edə bilmədikləri

Web qatı işə başlayanda hər birini yoxlayır və heç bir problem barədə xəbər vermədən sonradan ilk göndərilməyən e-poçtda uğursuz olmaqdansa, hamısını adları ilə rədd edir:

  • SMTP yoxdur. Vercel çıxan SMTP-ni bloklayır. QUIRE_EMAIL_PROVIDER_CONFIG parametrini HTTP provayderinə (Postmark, SES, Mailgun, SendGrid və ya Resend) verin. QUIRE_SMTP_URL rədd edilir.
  • Lokal disk yoxdur. QUIRE_STORAGE_DRIVER=local rədd edilir.
  • Çağırışlar arasında ortaq yaddaş yoxdur. QUIRE_REALTIME_DRIVER=inprocess rədd edilir. Serverdən göndərilən hadisələr funksiyanın vaxt limiti ilə məhdudlaşır; client cursor ilə yenidən qoşulur, hadisə itmir, lakin iştirak məlumatı əlçatan deyil.
  • Sabit tenant verilənlər bazaları təxminən səkkizlə məhdudlaşır, çünki hər biri pool-u paylaşa bilməyən mühitdə daha bir bağlantı hovuzu yaradır.

Yerləşdirmə

  1. Repozitoriyadan Root Directory apps/web olmaqla Vercel layihəsi yaradın. apps/web/vercel.json quraşdırma və yığım əmrlərini (NITRO_PRESET=vercel) təyin edir və /sw.js faylını keşsiz təqdim edir.
  2. Mühit dəyişənlərini təyin edin. docker/.env.example faylından ən azı bunlar lazımdır: QUIRE_DEPLOY_TARGET=vercel, QUIRE_APP_ORIGIN, QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_SECRET_KEY, QUIRE_MASTER_KEY, DATABASE_URL (pooler ünvanı), QUIRE_REPORT_DATABASE_URL, QUIRE_AUDIT_DATABASE_URL, QUIRE_DATABASE_ID, QUIRE_EMAIL_PROVIDER_CONFIG, QUIRE_MAIL_FROM, saxlama parametrləri, həmçinin əlavə hostdakı collab xidmətini göstərən QUIRE_COLLAB_URL və QUIRE_COLLAB_SIGNING_KEY. QUIRE_REPORT_DATABASE_URL, DATABASE_URL ilə adlandırılmış fiziki bazaya aiddir. Əlavə hər qeydə alınmış bazanın öz quire_report bağlantı URL-sini web və worker mühitlərinə əlavə edin, sonra platforma konsolunda mühit dəyişəninin adını env:NAME kimi qeyd edin. Həmin bazanın hesabat URL-si yoxdursa analitika təhlükəsizlik naminə işləmir.
  3. Əlavə hostda docker/compose.yaml-i web xidməti olmadan və eyni docker/.env ilə başladın:
    docker compose -f docker/compose.yaml up -d migrate init worker scheduler collab content
    Hər Vercel yerləşdirməsi yayımlanmamışdan əvvəl miqrasiyalar orada işləyir.
  4. Yerləşdirin. Konfiqurasiya rədd edilərsə, funksiya jurnalı “The web tier did not start on vercel” ilə başlayır və dəyişdirilməli parametrləri sadalayır.

Yeniləmə

Əvvəl əlavə hostdan miqrasiya edin, sonra Vercel-in yeni yerləşdirməsini yayımlayın, ardınca əlavədəki worker-ləri mərhələli yeniləyin: upgrade.md sənədindəki ardıcıllıq. Vercel-in ani geri qaytarması kodun geri qaytarılmasıdır və buraxılış daxilində həmişə təhlükəsizdir.

Naviqasiya

Axtarmaq üçün yazın…

↑↓ naviqasiya↵ seçEsc bağla