Reka bentuknya ialah docs/architecture/23-ops.md seksyen 5. Vercel menjalankan
lapisan web sahaja. Segala-galanya berjalan pada hos pasangan yang anda kendalikan,
dan ia bukan pilihan.
Status dalam keluaran ini
Konfigurasi telah sedia (apps/web/vercel.json, pratetap Nitro vercel dan
semakan permulaan). Vercel memerlukan storan fail dikongsi
(QUIRE_STORAGE_DRIVER=s3 atau azure), satu pemandu masa nyata yang berfungsi
merentas instans fungsi (QUIRE_REALTIME_DRIVER=sse atau centrifugo) dan satu
pembekal e-mel HTTP. Tanpanya, lapisan web enggan bermula dan lognya menamakan
setiap tetapan yang hilang.
Komponen
Komponen
Di mana ia berjalan
web
Vercel Functions, masa laksana Node: halaman, REST, MCP, LTI, webhook yang diterima
worker, scheduler, collab, content
Hos pasangan: Fly, Railway, ECS, atau hos Docker anda sendiri dengan docker/compose.yaml
Postgres
Luar, di belakang satu pengumpul transaksi: Neon, Supabase, atau RDS dengan PgBouncer
Fail
S3 atau R2. Tiada cakera berterusan
Tugas latar belakang
Dijadualkan dengan pg-boss di dalam transaksi permintaan, dijalankan oleh pekerja pasangan. Dengan QUIRE_QUEUE_DRIVER=vercel pada pekerja pasangan, tugas ringan (penghantaran notis dan webhook tanpa pesanan) melalui Vercel Queues (VERCEL_QUEUE_REGION, VERCEL_QUEUE_TOKEN), jadi Postgres terkumpul tidak dikerjakan untuknya
Tugas berulang
Perancang pasangan. Tiada laluan Vercel Cron, kerana satu cron yang melakukan kerja dalam fungsi akan tamat masa
Penjejakan
OpenTelemetry ke pengumpul anda, OTEL_EXPORTER_OTLP_ENDPOINT
Apa yang sasaran ini tidak boleh lakukan
Lapisan web menyemak perkara ini semasa ia bermula dan menolak, dengan menamakan
setiap masalah, daripada gagal kemudian pada e-mel pertama yang tidak pernah
dihantar:
Tiada SMTP. Vercel menghalang SMTP keluar. Tetapkan
QUIRE_EMAIL_PROVIDER_CONFIG kepada satu pembekal HTTP (Postmark, SES,
Mailgun, SendGrid atau Resend). QUIRE_SMTP_URL ditolak.
Tiada cakera setempat.QUIRE_STORAGE_DRIVER=local ditolak.
Tiada perkongsian memori antara panggilan.QUIRE_REALTIME_DRIVER=inprocess ditolak. Peristiwa server-sent dihadkan pada
tamat masa fungsi; pelanggan menyambung semula dengan satu kursor, jadi tiada
peristiwa hilang, tetapi kehadiran tidak tersedia.
Pangkalan data penyewa yang disemat dihadkan kepada kira-kira lapan, kerana
setiap satu ialah satu lagi kumpulan sambungan dalam persekitaran yang tidak
dapat berkongsi kumpulan.
Melepaskan
Cipta satu projek Vercel daripada repositori dengan Root Directoryapps/web. apps/web/vercel.json menetapkan arahan pemasangan dan binaan
(NITRO_PRESET=vercel) dan menyajikan /sw.js tanpa cache.
Tetapkan pemboleh ubah persekitaran. Daripada docker/.env.example, sekurang-
kurangnya: QUIRE_DEPLOY_TARGET=vercel, QUIRE_APP_ORIGIN,
QUIRE_CONTENT_ORIGIN, QUIRE_PLATFORM_DOMAINS, QUIRE_SECRET_KEY,
QUIRE_MASTER_KEY, DATABASE_URL (alamat pengumpul),
QUIRE_REPORT_DATABASE_URL, QUIRE_AUDIT_DATABASE_URL,
QUIRE_DATABASE_ID, QUIRE_EMAIL_PROVIDER_CONFIG, QUIRE_MAIL_FROM,
tetapan storan, serta QUIRE_COLLAB_URL dan QUIRE_COLLAB_SIGNING_KEY
yang menunjuk kepada perkhidmatan collab pasangan.
QUIRE_REPORT_DATABASE_URL adalah milik pangkalan data fizikal yang dinamakan
oleh DATABASE_URL. Bagi setiap pangkalan data berdaftar tambahan, tambahkan
URL sambungan quire_reportnya sendiri kepada persekitaran web dan worker,
kemudian namakan pemboleh ubah persekitarannya sebagai env:NAME dalam
konsol platform. Analitik gagal tertutup jika URL laporan pangkalan data itu
hilang.
Pada hos pasangan, jalankan docker/compose.yaml tanpa perkhidmatan web,
dengan docker/.env yang sama:
Migrasi berjalan di sana, sebelum setiap pelepasan Vercel dinaikkan.
Lepaskan. Pada satu konfigurasi yang ditolak, log fungsi bermula dengan “The
web tier did not start on vercel” dan menyenaraikan setiap tetapan yang perlu
diubah.
Naik taraf
Migrate daripada hos pasangan terlebih dahulu, kemudian naikkan pelepasan Vercel
yang baharu, kemudian kemas kini berperingkat pada pekerja pasangan: urutannya dalam
upgrade.md. Satu rollback segera Vercel ialah satu rollback kod dan
sentiasa selamat dalam sesebuah keluaran.