Aller au contenu principal

VercelDeployer

VercelDeployer regroupe votre serveur Mastra et génère une sortie conforme à la Build Output API de Vercel. Vercel déploie directement cette sortie sous forme de fonctions serverless.

Installation
Lien direct vers Installation

Pour utiliser VercelDeployer, installez le package @mastra/deployer-vercel :

npm install @mastra/deployer-vercel@latest

Exemple d’utilisation
Lien direct vers Exemple d’utilisation

Importez VercelDeployer et définissez-le comme Deployer dans votre configuration Mastra :

src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { VercelDeployer } from '@mastra/deployer-vercel'

export const mastra = new Mastra({
deployer: new VercelDeployer(),
})

Options du constructeur
Lien direct vers Options du constructeur

Le Deployer accepte les options suivantes :

  • studio?: boolean : déploie Studio avec votre API sous forme de ressources statiques distribuées depuis l’Edge CDN de Vercel. La valeur par défaut est false.
  • maxDuration?: number : délai maximal d’exécution de la fonction, en secondes
  • memory?: number : mémoire de la fonction, en Mo
  • regions?: string[] : régions dans lesquelles déployer la fonction, par exemple ['sfo1','iad1']

Les options maxDuration, memory et regions sont fusionnées dans .vercel/output/functions/index.func/.vc-config.json tout en préservant les champs par défaut (handler, launcherType, runtime, shouldAddHelpers).

Exemple avec des remplacements
Lien direct vers Exemple avec des remplacements

src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { VercelDeployer } from '@mastra/deployer-vercel'

export const mastra = new Mastra({
deployer: new VercelDeployer({
studio: true,
maxDuration: 600,
memory: 1536,
regions: ['sfo1', 'iad1'],
}),
})

Sortie de compilation
Lien direct vers Sortie de compilation

Après l’exécution de mastra build, le Deployer génère un répertoire .vercel/output conforme à la Build Output API (v3) de Vercel. Ce répertoire contient la configuration du routage et les bundles de fonctions serverless que Vercel déploie directement, sans passer par la détection du framework.

La sortie contient :

  • config.json : configuration du routage qui dirige les requêtes vers le gestionnaire approprié
  • functions/ : votre serveur Mastra regroupé sous la forme d’une fonction serverless
  • static/ : ressources de la SPA Studio, uniquement lorsque studio: true

Sans Studio :

.vercel/
└── output/
├── config.json
└── functions/
└── index.func/
├── .vc-config.json
├── index.mjs
└── node_modules/

Avec studio: true :

.vercel/
└── output/
├── config.json
├── static/
│ ├── index.html
│ └── assets/
│ ├── *.js
│ └── *.css
└── functions/
└── index.func/
├── .vc-config.json
├── index.mjs
└── node_modules/

Lorsque Studio est activé, le routage est configuré de sorte que les requêtes /api/* soient traitées par la fonction serverless, que les ressources statiques (JS, CSS) soient distribuées depuis l’Edge CDN de Vercel sans invoquer de fonction et que tous les autres chemins utilisent index.html comme solution de repli pour le routage côté client.

Ce dossier est généré lors de la compilation et ne doit pas être ajouté au système de gestion de versions.