Environments
每個 platform 專案都包含一或多個環境。
環境是隔離的部署目標,擁有自己的 URL、環境變數與部署記錄,也可擁有自己的託管資料庫。
使用 Environments,即可在單一專案中執行相同程式碼的 production、staging 與預覽版本。
第一次執行 mastra deploy 會建立 production 環境。可透過 CLI 建立更多環境,也可部署至尚不存在的名稱來建立。
建立環境「建立環境」的直接連結
明確建立環境:
mastra env create staging
或在部署時建立,CLI 會要求確認:
mastra deploy --env staging
mastra env create 預設使用 staging 類型。傳入 --type 可明確設定 staging 或 preview,傳入 --region 則可選擇環境的執行位置:
mastra env create eu-preview --type preview --region eu
每個專案只有一個 production 環境,由第一次部署建立。區域在建立時固定。附加至環境的資料庫會自動佈建在靠近該環境區域的位置,Observability 資料則會路由至符合資料駐留分區的擷取區域。支援的區域、資料庫位置與 Observability 共置方式請參閱區域。每個專案可有的環境數取決於方案。
列出環境「列出環境」的直接連結
mastra env list
輸出會顯示各環境的名稱、區域、作用中部署狀態,以及附加資料庫注入的受管理環境變數。在 CI 中可傳入 --json 取得機器可讀輸出。
所有 mastra env 指令依序從 MASTRA_PROJECT_ID、--project 旗標或第一次部署寫入的 .mastra-project.json 解析專案。只要從專案目錄執行,就無須指定專案名稱。
環境變數「環境變數」的直接連結
環境會從三種範圍解析變數:
- 受管理變數:由附加的託管資料庫注入(例如
TURSO_DATABASE_URL)。這些變數由 platform 定義,無法編輯。 - 環境範圍變數:透過控制面板儲存在單一環境。適合用於各環境不同的值,例如測試與正式服務的 API 金鑰。
- 專案範圍變數:儲存在專案中,由所有環境共用。
環境範圍與專案範圍變數合稱 Deploy 頁面所述的已儲存變數。
變數會在部署開始時套用。若要在不完整重新部署的情況下,將變更後的變數套用至執行中的服務:
mastra env restart staging
若要查看環境部署實際使用的完整集合(合併環境範圍與專案範圍值,並按名稱列出受管理變數),可將它們提取至本機 env 檔案:
mastra env vars pull staging --output .env.staging
受管理變數的值會在部署時注入,絕不寫入檔案;檔案只會以註解列出名稱。
環境變數不會覆寫受管理資料庫變數。若要讓環境指向不同資料庫,請改為附加環境範圍資料庫。
部署記錄「部署記錄」的直接連結
列出所有環境的部署,或篩選單一環境:
mastra env deploys
mastra env deploys staging
每列會顯示部署狀態、環境、時間戳記,以及目前作用中的部署。部署會依序經歷 queued → uploading → building → deploying → running,只有新版本開始處理流量後,platform 才會回報 running。
隔離環境資料「隔離環境資料」的直接連結
託管資料庫預設限定於單一環境,因此正式與測試環境會各自讀寫自己的資料庫:
mastra env db create production --kind turso --name my-project-production-db
mastra env db create staging --kind turso --name my-project-staging-db
若希望所有環境共用一個資料庫,請改用 --shared 附加:mastra env db create --kind turso --shared。
環境對每個 Provider 只能使用一個資料庫。若專案已有相同 Provider 的共用 (--shared) 資料庫,附加環境範圍資料庫會因變數名稱衝突而遭拒;請先以 mastra env db delete 刪除共用資料庫。刪除資料庫會連同 Provider 上的所有資料一起銷毀,因此請先匯出需要保留的內容。完整範圍模型請參閱託管資料庫。
刪除環境「刪除環境」的直接連結
mastra env delete staging
CLI 會在刪除前要求確認。刪除環境會移除其部署與已儲存變數。