环境与配置
Environment model
理解环境如何隔离配置并参与部署快照。
Environment 是一组部署时配置的用户边界,例如 development、staging 或 production。
资源可以在不同环境下部署。每次部署读取目标环境的配置并保存不可变快照。
环境默认是 active。锁定环境会保留环境、变量、资源、部署和历史记录,并阻止新的环境变量写入、环境提升、新资源创建和新部署准入;解锁后环境回到 active。
重命名 active 环境只改变环境名称,不会改变环境 ID、变量、资源、部署、域名、证书或运行时状态。锁定或归档环境不能重命名。
克隆 active 环境会在同一项目中创建一个新的 active 环境,使用新的名称并复制源环境变量。它不会复制资源、部署、域名、证书或运行时状态。
复制环境用于创建 staging、测试、preview 或一次性演示环境。它比“克隆环境”更完整:默认复制服务和资源配置形状,在新环境中重新部署,并把数据面保持隔离。
Console 中的 复制环境 默认使用安全策略:
- 服务:复制并重新部署。
- 网络:新建隔离网络。
- 依赖:新建托管依赖。
- Secret:重新生成目标环境引用,不复制或展示来源 secret 明文。
- 数据库数据:创建空数据库,之后再 seed、迁移或恢复。
- 域名:生成新路由,不复制生产自定义域名。
- 存储:创建空卷。
只有需要迁移数据或复用来源时才展开高级策略:
- 复用来源依赖:目标环境继续使用来源环境同一个数据库或依赖资源。它可能让环境之间共用数据,必须显式确认,并会保留共享来源提醒。
- 从备份恢复数据库:填写备份 id,用备份内容初始化目标数据库。
- 绑定自定义域名:填写目标 hostname,而不是使用自动生成路由。
- 从备份恢复存储:用备份 id 恢复卷数据。
- 导入存储 artifact:用 artifact 引用导入卷数据。
CLI 中等价的安全默认命令是:
appaloft env copy local staging \
--dependencies create-new \
--secrets regenerate \
--data empty \
--domains generated \
--storage empty \
--network isolated常用变体:
appaloft env copy local staging --dry-run --json
appaloft env copy local staging --yes
appaloft env copy production staging --database restore:backup_123
appaloft env copy production staging --domain rebind:staging.example.com
appaloft env copy production staging --storage import:artifact_ref
appaloft env copy production staging --reuse-source db --acknowledge-shared-source归档环境同样保留环境、变量、资源、部署和历史记录,但它是退役状态,不会通过解锁恢复。
克隆、锁定、解锁和归档都不会停止运行时、删除资源、清理域名或移除证书。需要清理时,应使用对应资源、部署、域名或证书命令。