Mastra 플랫폼에 배포
mastra deployMastra 애플리케이션을 릴리스하기 위한 단일 명령입니다.마스트라 플랫폼.
하나의 명령은 프로젝트를 빌드하고 포함하기 전에 유효성을 검사하며, 처음 실행 시 플랫폼 프로젝트와 환경을 생성하고, 배포하고, 빌드 로그를 스트리밍하고, 배포가 트래픽을 제공하면 공개 URL을 인쇄합니다.
mastra deploy
:::참고
이 페이지에서는 통합 배포 흐름을 다룹니다. 이전 분할 명령은mastra server deploy and mastra studio deploy, still work but mastra deploy권장 경로입니다.
:::
시작하기 전에시작하기 전에에 대한 직접 링크
당신은Mastra application and a Mastra platform 계정입니다. 인증되지 않은 경우 CLI는 처음 사용할 때 로그인하라는 메시지를 표시합니다.
현지인.env 파일은 선택 사항입니다. 플랫폼에 저장된 환경 변수는 배포 시 그대로 사용되며, 다음과 같은 관리형 리소스도 마찬가지입니다: hosted databases inject their own variables. Pass --env-file 로컬 값을 그 위에 추가하려는 경우에만 사용하세요.
첫 번째 배포첫 번째 배포에 대한 직접 링크
프로젝트 디렉터리에서 다음을 실행합니다.
mastra deploy처음 실행 시 CLI는 플랫폼 프로젝트(이름을 따서 명명)를 생성하라는 메시지를 표시합니다.
package.json) and theproductionenvironment. Accept the prompts, or pass--yesto accept defaults without confirmation.CLI는 배송 전 실행 전 검사를 실행합니다. 로컬 파일 경로(플랫폼의 임시 파일 시스템에서 유지되지 않음)로 대체되는 스토리지는 일반적으로 배포를 차단합니다.
file:./mastra.db will be used at runtime because TURSO_DATABASE_URL is not set오류가 발생하는 대신 CLI는 인라인으로 문제를 해결하도록 제안합니다.
Preflight needs TURSO_DATABASE_URL for the production environment. Create a managed turso database now and attach it? (Y/n)Prompt를 수락하면 프로비저닝하는 데 몇 초가 걸립니다. 데이터베이스의 연결 변수는 배포에 자동으로 삽입되며, 데이터베이스에 복사할 내용은 없습니다.
.env파일입니다. 이를 거부하거나 비대화형 셸(CI,--yes)에서 실행하면 CLI는 이전 동작으로 대체하여 직접 실행할 정확한 명령을 출력합니다.mastra env db create production --kind turso환경 슬러그(
production위의 항목)이 CLI가 배포했을 환경과 일치해야 합니다. 이는mastra env db create프로젝트에 환경이 둘 이상 있는 경우 비대화형 셸에서는 환경 인수가 필요하기 때문입니다.:::참고 프리플라이트가 대신 하드 코딩된 로컬 경로를 보고하는 경우(
Build contains a host-local storage URL)에서는 인라인 수정 옵션을 제공할 수 없습니다. 먼저 환경 변수로 경로를 보호하여 로컬 개발 중에만 파일이 사용되도록 하세요:src/mastra/index.tsnew LibSQLStore({id: 'mastra-storage',// Uses the hosted database when deployed, a local file during developmenturl: process.env.TURSO_DATABASE_URL ?? 'file:./mastra.db',authToken: process.env.TURSO_AUTH_TOKEN,}):::
달리다
mastra deploy다시 실행하세요. 사전 검사가 통과되면 빌드가 업로드되고, 배포가 라이브 상태가 될 때까지 CLI가 빌드 로그를 스트리밍합니다. 전체 빌드 및 배포에는 30초에서 몇 분 정도 걸립니다. 새 버전이 트래픽을 처리하기 시작한 경우에만 성공 메시지가 출력됩니다.CLI에서 인쇄된 URL에서 배포를 확인하세요. 추가
/api/agents에서 Agent의 JSON 목록이 반환되는지 확인하세요.경고설정authentication before exposing your endpoints publicly.
첫 번째 배포에서는 다음을 작성합니다..mastra-project.json 파일이 생성되어 디렉터리와 플랫폼 프로젝트를 연결합니다. 이후 배포, CI 실행 및 mastra env 명령이 추가 플래그 없이 동일한 프로젝트를 대상으로 하도록 이 파일을 커밋하세요.
다른 환경에 배포다른 환경에 배포에 대한 직접 링크
mastra deploy목표로production environment by default. Pass --env 을 사용하여 다른 환경을 대상으로 지정하세요. 환경이 아직 존재하지 않으면 CLI에서 생성을 제안합니다:
mastra deploy --env staging
각 환경에는 별도의 URL과 환경 변수가 있습니다. 그것은 또한 자신의 것을 가질 수 있습니다hosted database.
보다Environments for the full model.
지역을 선택하세요지역을 선택하세요에 대한 직접 링크
통과하다--region 을 사용하여 배포에서 새 환경을 생성할 때 실행 위치를 제어하세요. us or eu shorthand:
mastra deploy --env production --region eu
지역은 환경이 생성될 때 고정됩니다. 환경에 연결된 데이터베이스는 해당 환경의 지역 근처에 자동으로 배치되고 관측 가능성 데이터는 환경의 상주 영역과 일치하는 수집 지역으로 라우팅됩니다. 보다Regions 에서 지원되는 전체 리전 목록, 데이터베이스 배치 및 Observability 공동 배치에 관한 내용을 확인하세요.
비행 전 확인비행 전 확인에 대한 직접 링크
Preflight는 무엇이든 포함하기 전에 빌드된 출력의 유효성을 검사하고 사용자 코드의 문제에만 플래그를 지정합니다.
-
로컬 저장소 경로: 하드 블록. 파일 지원 스토리지(예:
file:./mastra.db)의 데이터는 배포할 때마다 손실됩니다. 로컬에 설정되어 있거나 플랫폼에 저장되어 있거나 관리형 데이터베이스에서 제공하는 환경 변수로 경로를 보호하면 사전 검사를 통과합니다:src/mastra/storage.tsimport { LibSQLStore } from '@mastra/libsql'export const storage = new LibSQLStore({id: 'mastra-storage',// Uses the hosted database when deployed, a local file during developmenturl: process.env.TURSO_DATABASE_URL ?? 'file:./mastra.db',authToken: process.env.TURSO_AUTH_TOKEN,}) -
환경 변수가 누락되었습니다.: 코드에서 읽히지만 소스가 제공하지 않는 변수에 대한 경고입니다. 라이브러리 코드에서만 참조되는 변수는 제외됩니다.
실행 전 블록에 대해 권장되는 대응은 일반적으로 호스팅된 데이터베이스를 연결하거나 플랫폼에 변수를 저장하여 원인을 수정하는 것입니다.--skip-preflight 은 비상 수단으로 제공되지만, 손상된 배포를 방지하는 검사를 건너뜁니다.
배포하지 않고 검사를 실행합니다.
mastra lint --preflight
mastra lint로컬 env 파일만 볼 수 있습니다. 플랫폼에 저장되거나 관리형 데이터베이스에 의해 주입된 변수는 표시되지 않으므로 배포는 Lint가 여전히 오류를 보고하는 프리플라이트를 전달할 수 있습니다.
환경변수환경변수에 대한 직접 링크
배포는 세 가지 소스에서 환경 변수를 확인합니다.
- 관리되는 변수: 호스팅된 데이터베이스와 같은 플랫폼 리소스에 의해 주입됩니다(예:
TURSO_DATABASE_URL)입니다. 플랫폼에서 이를 정의하며 사용자가 편집할 수 없습니다. - 저장된 변수: 대시보드를 통해 프로젝트나 환경에 저장됩니다. 로컬 파일이 필요하지 않고 모든 배포에서 있는 그대로 사용됩니다.
- 로컬 환경 파일: 명시적인 배포 계층
--env-fileor the ambient.envand.env.localfiles on top.
mastra deploy --env staging --env-file .env.staging
재배포 없이 실행 중인 서비스에서 변수를 변경하려면 대시보드에서 업데이트하고 다음을 실행하세요.mastra env restart.
프로젝트 해결프로젝트 해결에 대한 직접 링크
모든 배포는 다음 순서로 대상 프로젝트를 해결합니다.
- 그만큼
MASTRA_PROJECT_IDenvironment variable - 그만큼
--project <name|slug|id>flag - 그만큼
.mastra-project.jsonfile in the current directory
CI에서 설정MASTRA_PROJECT_ID and MASTRA_API_TOKEN and pass --yes:
mastra deploy --env production --yes