Aller au contenu principal

NetlifyDeployer

La classe NetlifyDeployer gère le packaging, la configuration et le déploiement en adaptant la sortie de Mastra pour créer une version optimisée de votre serveur. Elle étend la classe Deployer de base avec des fonctionnalités propres à Netlify. Elle permet d’exécuter Mastra dans des fonctions serverless ou des fonctions edge de Netlify.

Installation
Lien direct vers Installation

Pour utiliser NetlifyDeployer, vous devez installer le package @mastra/deployer-netlify :

npm install @mastra/deployer-netlify@latest

Exemple d’utilisation
Lien direct vers Exemple d’utilisation

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

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

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

Options du constructeur
Lien direct vers Options du constructeur

  • target?: 'serverless' | 'edge' : cible de déploiement pour Netlify. La valeur par défaut est 'serverless'.
    • 'serverless' : Netlify Functions standard (environnement d’exécution Node.js, délai d’expiration de 60 s par défaut).
    • 'edge' : Netlify Edge Functions (environnement d’exécution fondé sur Deno, exécuté au point edge le plus proche des utilisateurs, sans délai d’expiration fixe).

Exemple avec les fonctions edge
Lien direct vers Exemple avec les fonctions edge

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

export const mastra = new Mastra({
deployer: new NetlifyDeployer({
target: 'edge',
}),
})

Sortie
Lien direct vers Sortie

Après l’exécution de mastra build, le Deployer génère un dossier .netlify. La sortie de compilation comprend tous les Agents, Tools et Workflows de votre projet, ainsi qu’un fichier config.json qui configure la Netlify Frameworks API.

Sortie serverless (par défaut)
Lien direct vers Sortie serverless (par défaut)

your-project/
└── .netlify/
└── v1/
├── config.json
└── functions/
└── api/
├── index.mjs
├── package.json
└── node_modules/

Le fichier config.json contient :

{
"functions": {
"directory": ".netlify/v1/functions",
"node_bundler": "none",
"included_files": [".netlify/v1/functions/**"]
},
"redirects": [
{
"force": true,
"from": "/*",
"to": "/.netlify/functions/api/:splat",
"status": 200
}
]
}

Sortie edge
Lien direct vers Sortie edge

your-project/
└── .netlify/
└── v1/
├── config.json
└── edge-functions/
├── index.mjs
├── package.json
└── node_modules/

Le fichier config.json contient :

{
"edge_functions": [
{
"function": "index",
"path": "/*"
}
]
}