Uyumluluk: Pactmark 0.2.x. Yerel adaptör kanıtı mevcuttur — derleme, rota, güvenlik ve erişilebilirlik sözleşmeleri ile akış hâlindeki olaylar. Doğrulanmış canlı bir Pactmark Vercel dağıtımı yoktur. Hazırlık kaydı URL, log, veritabanı-devam, geri alma ve kaldırma kanıtı içerene kadar canlı dağıtım desteklenmez.

Adaptör bilinçli olarak incedir

app/api/agent/[...pactmark]/route.ts
src/host.ts
createVercelRouteHandler, createAgentFetchHandler’ı sarar ve istek-zamanı ortamını, abort sinyalini, isteğe bağlı waitUntil’i ve çalışma zamanının yeteneklerini sağlar. Adaptörün tamamı budur — geri kalan her şey taşınabilir çekirdektir.
Node.js çalışma zamanını kullanın. Fluid Compute size tam Node API’lerini, akışı ve daha uzun süreleri verir; bu yüzden bir edge çalışma zamanına uzanıp yürütücü ve depo seçeneklerini kaybetmenin bir nedeni yoktur.

Önce kimlik doğrulama

Tenant ve principal, çalışma zamanına erişimden önce çözülür. Bir istemci bunları seçemez ve kimliği doğrulanmamış bir istek asla bir depoya ya da modele ulaşmaz.

Dayanıklılık invocation’ın dışında yaşar

Çoğu dağıtımın yanlış yaptığı kısım burasıdır.

Fonksiyonun yaptığı

Kimliği doğrulanmış bir komutu kabul etmek, olay eklemek, ilerlemeyi akıtmak, dönmek. Bir taşımadır, yaşam döngüsü sahibi değil.

Fonksiyonun sahiplenmemesi gereken

Koşu durumu, devam etme, arka plan ilerlemesi veya bir insan bir şeyi onayladığında hâlâ hayatta olacağı varsayımı.
Üretim profili için gerekenler:
1

Hostname doğrulamalı TLS ile Postgres deposu

sslmode=verify-full, en az ayrıcalıklı rol, ayrı uygulanan sıralı göçler.
2

Ayrı işletilen bir worker

Vercel fonksiyonları kalıcı bir uyandırma döngüsü çalıştıracak yer değildir. Worker’ı uzun ömürlü bir sürecin ait olduğu yerde çalıştırın — bir konteyner, bir VM ya da düzgün kiralamaya sahip zamanlanmış bir iş.
3

Gerçek arka plan zamanlaması

waitUntil, yapılandırılmış telemetriyi boşaltmak gibi kritik olmayan işler içindir. Kalıcı bir uyandırma mekanizması değildir ve öyle kullanılmamalıdır.
Uzun bir fonksiyon zaman aşımı dayanıklılık garantisi değildir. Bellek durumu, açık bir yanıttan çıkarsanan arka plan işi veya kimlik doğrulamasız bir preview üretim kapısını karşılayamaz — ve hazırlık kontrolü bunu söyler.

Vercel’de akış

SSE, Node.js çalışma zamanında özel yapılandırma olmadan çalışır. dynamic = "force-dynamic" ve fetchCache = "force-no-store" ayarlayın ki hiçbir şey önbelleğe alınmasın ve istemcinizin afterSequence ile yeniden bağlandığından emin olun — bkz. Akış ve istemciler.

Preview dağıtımları

Bir yayın önizlemesi, vendor’lanmış donmuş bir lockfile’dan tam attested tarball’ları kurmalıdır. Yayımlanmadan önce Pactmark paketlerini genel registry’den çözmemelidir ve anonim erişimli bir preview hiçbir şeyin kanıtı değildir.
Referans fixture’ı, allowAnonymousDevelopment ve sabit bir anonim yetkiyle açık bir preview profilini destekler — gerçek bir kimlik doğrulama kancası gerektiren üretim yolundan net biçimde ayrılmış hâlde. Bu ayrımı kendi host’unuzda da koruyun; bir preview bayrağının üretim yapılandırmasında okunabilir olmasına izin vermeyin.

Ortam değişkenleri

Ortam değişkenlerini adaptörün içinde readEnvironment üzerinden istek zamanında okuyun. Bir derleme artefaktına serileştirilebilecekleri modül kapsamında yakalamayın.

Bugün gerçekte kanıtlanmış olanlar

Geçmiş Vercel kanıtı yalnızca test amaçlı Preview çalışmasıydı ve kaynakları kaldırıldı.

Dağıtıma genel bakış

Bu hedefin Node ve Cloudflare ile karşılaştırması.

Hazırlık listesi

Bunun bir üretim sistemi olması için neyin doğru olması gerektiği.