跳至主要內容

NetlifyDeployer

NetlifyDeployer 類別會調整 Mastra 的輸出,以建立最佳化的伺服器版本,並處理封裝、設定與部署。它以 Netlify 專屬功能擴充基礎 Deployer 類別,讓你可以在 Netlify serverless function 或 edge function 中執行 Mastra。

安裝
「安裝」的直接連結

若要使用 NetlifyDeployer,必須安裝 @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?: 'serverless' | 'edge':Netlify 的部署目標。預設為 'serverless'
    • 'serverless':標準 Netlify Functions(Node.js 執行階段,預設逾時時間為 60 秒)。
    • 'edge'Netlify Edge Functions(以 Deno 為基礎的執行階段,在最接近使用者的 edge 執行,沒有固定逾時時間)。

Edge function 範例
「Edge function 範例」的直接連結

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

輸出
「輸出」的直接連結

執行 mastra build 後,deployer 會產生 .netlify 資料夾。建置輸出包含專案中的所有 Agent、Tool 與 Workflow,以及用於設定 Netlify Frameworks APIconfig.json 檔案。

Serverless 輸出(預設)
「Serverless 輸出(預設)」的直接連結

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

config.json 檔案包含:

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

Edge 輸出
「Edge 輸出」的直接連結

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

config.json 檔案包含:

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