跳至主要內容

將 Mastra 部署至 Netlify

使用 @mastra/deployer-netlify 將 Mastra 伺服器部署至 Netlify。deployer 會捆綁你的程式碼,並產生符合 Netlify Frameworks API.netlify 目錄,供你直接部署。你可以部署為無伺服器函數(預設),亦可部署為延遲較低、執行時間較長的邊緣函數

資訊

本指南涵蓋如何部署 Mastra 伺服器。如你使用伺服器配接器網絡框架,請按該框架的一般方式部署。

開始之前
開始之前 的直接連結

你需要一個 Mastra 應用程式和一個 Netlify 帳戶。

注意

Netlify Functions 使用暫時性檔案系統,因此你設定的任何儲存空間(包括可觀測性儲存空間)都必須託管於外部。如你使用的 LibSQLStore 採用檔案 URL,請改用遙距託管的資料庫。

安裝
安裝 的直接連結

@mastra/deployer-netlify 依賴套件加入項目:

npm install @mastra/deployer-netlify@latest

匯入 NetlifyDeployer,並在 Mastra 設定中將它設為 deployer:

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' }

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

邊緣函數在最接近使用者的邊緣位置透過 Deno 執行。它們沒有固定的執行逾時限制(只有 CPU 時間限制),因此更適合執行時間較長的 AI Workflow。詳情請參閱建構函數選項

在項目根目錄建立包含以下內容的 netlify.toml 檔案:

[build]
command = "mastra build"

部署
部署 的直接連結

設定好項目後,將它推送至你選用的遙距 Git Provider(例如 GitHub)。

  1. 將你的程式碼儲存庫連接至 Netlify。在設定過程中,Netlify 會偵測你的 netlify.toml 檔案,並將建置命令設為 mastra build

    備註

    請記得設定執行應用程式所需的環境變數(例如你的模型 Provider API 金鑰)。

  2. 準備好後,按一下 Deploy 按鈕,並等待首次部署完成。系統會通知你已有一個 函數完成部署。

  3. https://<random-slug>.netlify.app/api/agents 驗證部署;該網址應傳回你的 Agent JSON 清單。

    由於 Mastra 伺服器會在每個 API 端點前加上 /api,因此發出請求時必須將它加入 URL。

    資訊

    Netlify 函數通常部署於 https://<random-slug>.netlify.app/.netlify/functions/apiNetlifyDeployer 會將所有來自 /* 的請求重新導向至 /.netlify/functions/api/:splat,因此 URL 無需包含 .netlify/functions 前綴。

  4. 現在你可以透過 HTTP 呼叫 Mastra 端點。

    注意

    對外公開端點前,請先設定驗證