環境
每個平台項目都包含一個或多個環境。
環境是互相隔離的部署目標,擁有自己的 URL、環境變數和部署記錄,亦可擁有自己的託管資料庫。
你可使用環境,在單一項目內執行同一程式碼庫的 production、staging 和 preview 版本。
首次執行 mastra deploy 時會建立 production 環境。你可透過 CLI 建立更多環境,亦可部署至尚未存在的名稱來建立環境。
建立環境建立環境 的直接連結
明確建立環境:
mastra env create staging
你亦可讓部署建立環境,系統會要求確認:
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)。這些變數由平台定義,你無法編輯。 - 環境範圍變數:透過控制台儲存在單一環境中。適合用於不同環境之間有所差異的值,例如 staging 及 production 服務的 API 金鑰。
- 項目範圍變數:儲存在項目中,由所有環境共用。
環境範圍變數與項目範圍變數合稱為部署頁面所述的已儲存變數。
變數會在部署開始時套用。如要將已變更的變數套用至執行中的服務,而不作完整重新部署:
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,只有當新版本開始處理流量時,平台才會回報 running。
隔離環境資料隔離環境資料 的直接連結
託管資料庫的範圍預設限定於單一環境,因此 production 和 staging 會分別讀寫自己的資料庫:
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 會在刪除前要求確認。刪除環境會移除其部署和已儲存變數。