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.
InstallationLien direct vers Installation
Pour utiliser NetlifyDeployer, vous devez installer le package @mastra/deployer-netlify :
- npm
- pnpm
- Yarn
- Bun
npm install @mastra/deployer-netlify@latest
pnpm add @mastra/deployer-netlify@latest
yarn add @mastra/deployer-netlify@latest
bun add @mastra/deployer-netlify@latest
Exemple d’utilisationLien direct vers Exemple d’utilisation
Importez NetlifyDeployer et définissez-le comme Deployer dans votre configuration Mastra :
import { Mastra } from '@mastra/core'
import { NetlifyDeployer } from '@mastra/deployer-netlify'
export const mastra = new Mastra({
deployer: new NetlifyDeployer(),
})
Options du constructeurLien 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 edgeLien direct vers Exemple avec les fonctions edge
import { Mastra } from '@mastra/core'
import { NetlifyDeployer } from '@mastra/deployer-netlify'
export const mastra = new Mastra({
deployer: new NetlifyDeployer({
target: 'edge',
}),
})
SortieLien 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 edgeLien 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": "/*"
}
]
}