通过代码库部署多个环境

从同一代码库部署多个环境的情况很常见,每个环境的配置略有不同。例如,您可能希望为预演环境分配较少的 CPU 和 RAM,或者希望确保生产环境至少有 1 个实例保持活跃状态并准备好处理请求。

如需详细了解环境,请参阅环境概览设置 Firebase 项目的一般最佳实践

前提条件

第 0 步:设置生产 Git 分支

如果您希望从 main 分支部署生产环境,请跳至下一步。如果您想从其他分支部署生产环境,例如production,您必须先在 GitHub 上创建它。

如需使用 GitHub 界面创建生产分支,请参阅在代码库中创建和删除分支

如需在本地创建生产分支,请执行以下操作:

$ git checkout -b production
$ git push origin production:production

第 1 步:配置生产 apphosting.yaml

假设您要确保生产环境中始终有至少 1 台机器在运行,并且包含一些特定于生产环境的环境变量。您可以通过在项目的根目录下创建如下所示的 apphosting.yaml 文件进行配置:

# Saved at <repository root>/apphosting.yaml

runConfig:
  minInstances: 1

env:
  - variable: STORAGE_BUCKET
    value: <production Cloud Storage bucket name>

如需查看受支持设置的完整列表,请参阅配置 App Hosting

修改 apphosting.yaml 后,将其推送到您的 GitHub 代码库:

$ git add apphosting.yaml
$ git commit -m "Added production App Hosting backend configuration."
$ git push origin

第 2 步:将代码库部署到生产环境

配置生产 Git 分支后,您可以创建新的生产 App Hosting 后端。如需了解详细说明,请参阅 App Hosting 使用入门

如需使用 Firebase 控制台创建新的后端,请转到 https://console.firebase.google.com/project/_/apphosting 以开始操作。

要在本地创建该文件,您必须先安装 Firebase CLI,然后运行以下命令:

firebase apphosting:backends:create --project <replace with your PRODUCTION project ID>

此命令成功完成后,您的生产后端应该会上线,对生产分支的任何新提交都将由 App Hosting 自动构建和部署。

第 3 步:设置暂存 git 分支

按照与上述步骤相同的步骤,在 GitHub 中创建暂存分支:

$ git checkout -b staging
$ git push origin staging:staging

第 4 步:配置临时 apphosting.yaml

您的预演分支应已包含生产 apphosting.yaml 的副本。我们来修改一下,以便 App Hosting 可以在没有活跃使用的情况下关闭预演环境,并为 STORAGE_BUCKET 环境变量设置不同的值。

# Saved at <repository root>/apphosting.yaml

runConfig:
  minInstances: 0

env:
  - variable: STORAGE_BUCKET
    value: <some other staging Cloud Storage bucket name>

完成修改后,将文件推送到暂存 Git 分支:

$ git add apphosting.yaml
$ git commit -m "Added staging App Hosting backend configuration."
$ git push origin

第 5 步:将代码库部署到预演环境

配置预演 git 分支后,您可以按照上述相同的步骤将代码库部署到预演工作区:

firebase apphosting:backends:create --project <replace with your STAGING project ID>

完成此步骤后,您将拥有两个由同一代码库提供支持的 App Hosting 后端,一个用于生产环境,另一个用于预演项目,它们分别位于不同的 Firebase 项目中。

后续步骤