Aller au contenu principal

Déployer Mastra sur Netlify

Utilisez @mastra/deployer-netlify pour déployer votre serveur Mastra sur Netlify. Le deployer regroupe votre code et génère un répertoire .netlify conforme à la Frameworks API de Netlify, prêt à être déployé. Vous pouvez effectuer le déploiement sous forme de fonctions serverless (par défaut) ou de fonctions Edge afin de réduire la latence et d'allonger la durée d'exécution.

info

Ce guide décrit le déploiement du serveur Mastra. Si vous utilisez un adaptateur de serveur ou un framework web, suivez la procédure de déploiement habituelle de ce framework.

Avant de commencer
Lien direct vers Avant de commencer

Vous aurez besoin d'une application Mastra et d'un compte Netlify.

attention

Les fonctions Netlify utilisent un système de fichiers éphémère. Tout stockage que vous configurez, y compris celui de l'observabilité, doit donc être hébergé à l'extérieur. Si vous utilisez LibSQLStore avec une URL de fichier, passez à une base de données hébergée à distance.

Installation
Lien direct vers Installation

Ajoutez le package @mastra/deployer-netlify à votre projet :

npm install @mastra/deployer-netlify@latest

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(),
})

Pour déployer plutôt sous forme de fonctions Edge, transmettez { target: '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',
}),
})

Les fonctions Edge s'exécutent sur Deno au point de présence le plus proche de vos utilisateurs. Elles ne sont soumises à aucun délai d'exécution strict, mais uniquement à une limite de temps CPU, ce qui les rend mieux adaptées aux workflows d'IA de longue durée. Consultez les options du constructeur pour plus de détails.

Créez à la racine de votre projet un fichier netlify.toml avec le contenu suivant :

[build]
command = "mastra build"

Déployer
Lien direct vers Déployer

Après avoir configuré votre projet, envoyez-le vers le fournisseur Git distant de votre choix, par exemple GitHub.

  1. Connectez votre dépôt à Netlify. Pendant la configuration, Netlify détectera votre fichier netlify.toml et définira la commande de build sur mastra build.

    remarque

    Pensez à définir les variables d'environnement nécessaires à l'exécution de votre application, par exemple la clé d'API de votre fournisseur de modèles.

  2. Lorsque tout est prêt, cliquez sur le bouton Deploy et attendez la fin du premier déploiement. Netlify vous indiquera qu'une fonction a été déployée.

  3. Vérifiez votre déploiement à l'adresse https://<random-slug>.netlify.app/api/agents, qui doit renvoyer une liste JSON de vos agents.

    Comme le serveur Mastra préfixe chaque endpoint d'API par /api, vous devez ajouter ce préfixe à vos URL lorsque vous envoyez des requêtes.

    info

    Les fonctions Netlify sont généralement déployées à l'adresse https://<random-slug>.netlify.app/.netlify/functions/api. NetlifyDeployer redirige toute requête de /* vers /.netlify/functions/api/:splat ; il n'est donc pas nécessaire d'inclure le préfixe .netlify/functions dans vos URL.

  4. Vous pouvez maintenant appeler vos endpoints Mastra via HTTP.

    attention

    Configurez l'authentification avant d'exposer publiquement vos endpoints.