본문으로 건너뛰기

Netlify배포자

그만큼NetlifyDeployer클래스는 서버의 최적화된 버전을 만들기 위해 Mastra의 출력을 조정하여 패키징, 구성 및 배포를 처리합니다. 베이스를 확장해줍니다DeployerNetlify 관련 기능을 갖춘 클래스입니다. 이를 통해 Netlify 서버리스 기능 또는 에지 기능 내에서 Mastra를 실행할 수 있습니다.

설치
설치에 대한 직접 링크

NetlifyDeployer를 사용하려면 @mastra/deployer-netlify 패키지를 설치해야 합니다.

npm install @mastra/deployer-netlify@latest

사용예
사용예에 대한 직접 링크

NetlifyDeployer를 가져와 Mastra 구성의 배포자로 설정하세요.

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 기반 런타임이며, 사용자에게 가장 가까운 엣지에서 실행되고 고정된 제한 시간이 없습니다).

엣지 기능 예시
엣지 기능 예시에 대한 직접 링크

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를 실행하면 배포자가 .netlify 폴더를 생성합니다. 빌드 출력에는 프로젝트의 모든 Agent, Tool, Workflow와 함께 Netlify Frameworks API를 구성하는 config.json 파일이 포함됩니다.

서버리스 출력(기본값)
서버리스 출력(기본값)에 대한 직접 링크

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

그만큼config.json file contains:

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

엣지 출력
엣지 출력에 대한 직접 링크

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

그만큼config.json file contains:

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