我們通常會使用相同的程式碼集部署多個環境,每個環境各不相同 兩者的設定略有不同舉例來說,您可能想指派 減少測試環境的 CPU 和 RAM 容量 您的實際工作環境至少會讓 1 個執行個體處於啟用狀態,而且隨時可供運作 要求。您也可以指定不同的環境變數 密鑰。
本指南說明如何部署正式環境與測試環境, 另一個 Firebase 專案只要按照相同的原則,您就能 也可以是其他種類的環境如要進一步瞭解環境,請查看 詳情請參閱 環境和一般環境 設定 Firebase 的最佳做法 專案
事前準備
- 您的應用程式程式碼已儲存在 GitHub 中。
- 您已經為每個
環境:例如
my-production-firebase-project
和my-staging-firebase-project
。務必為正式版 Firebase 加上標記 含有 「production」環境 類型。 - 您已在每個專案中建立 App Hosting 後端,
分支版本設為要部署的 GitHub 分支版本 (例如
main
)。詳情請見 開始使用 App Hosting 瞭解詳情 可能不準確或不適當
步驟 0:在 apphosting.yaml 中建立預設設定
App Hosting 支援名為 apphosting.yaml
的設定檔來管理
執行階段設定 (CPU、並行、記憶體限制等) 和環境
變數。也支援參照
Cloud Secret Manager,安全地檢查原始碼控管機制。如要
資訊,請參閱設定
後端。
如要開始使用,請在應用程式的根目錄中建立 apphosting.yaml
檔案。
當
找不到環境專屬設定檔。儲存在
apphosting.yaml
應預設為可安全用於所有環境的預設設定。
以下各節說明如何覆寫 apphosting.yaml
中的預設值
適合特定環境這個範例流程會建立測試環境。
步驟 1:設定環境名稱
每個 App Hosting 後端都有「環境名稱」設定。這個欄位 用途是將後端對應至環境專屬的設定檔 可以隨時變更每個後端只能設定一個環境名稱。
如要設定後端環境名稱,
- 在 Firebase 控制台中,選取測試專案 (在本例中為 my-staging-firebase-project)。
- 請從左側導覽中選取 App Hosting。
- 在所選後端按一下「查看資訊主頁」。
- 在「設定」分頁中,選取「部署」。
- 在「環境名稱」下方輸入環境名稱。你可以命名 選擇您想要的環境本例中是「測試」。
- 按一下 [儲存]。
後端 (在 Git 上) 觸發 App Hosting 推出作業時
透過控制台手動推送或手動執行),App Hosting 會檢查是否有
apphosting.ENVIRONMENT_NAME.yaml
個檔案早於
降級為 apphosting.yaml
步驟 2:建立環境專屬的 apphosting.yaml
檔案
針對特定環境設定,建立名稱為
apphosting.ENVIRONMENT_NAME.yaml
,以便:
指定環境專屬的覆寫值這個檔案的格式與
預設為 apphosting.yaml,且必須位於
位於 apphosting.yaml
的根目錄中。
在建構期間,App Hosting 會合併這兩個檔案,並排定優先順序:
特定環境 YAML 檔案中 (基底 apphosting.yaml
) 的值
檔案。
在這個範例中,您將在apphosting.staging.yaml
的目錄:
runConfig:
cpu: 1
memoryMiB: 512
concurrency: 5
env:
- variable: API_URL
value: api.staging.service.com
availability:
- BUILD
- variable: DATABASE_URL
secret: secretStagingDatabaseURL
假設您已有如下所示的 apphosting.yaml
:
runConfig:
cpu: 3
memoryMiB: 1024
maxInstances: 4
minInstances: 0
concurrency: 100
env:
- variable: API_URL
value: api.service.com
availability:
- BUILD
- RUNTIME
- variable: STORAGE_BUCKET
value: mybucket.appspot.com
availability:
- RUNTIME
- variable: API_KEY
secret: secretIDforAPI
最終合併輸出內容 (您可以在 Cloud Build 記錄檔中查看) 如下所示:
runConfig:
cpu: 1
memoryMiB: 512
maxInstances: 4
minInstances: 0
concurrency: 5
env:
- variable: API_URL
value: api.staging.service.com
availability:
- BUILD
- variable: STORAGE_BUCKET
value: mybucket.appspot.com
availability:
- RUNTIME
- variable: API_KEY
secret: secretIDforAPI
- variable: DATABASE_URL
secret: secretStagingDatabaseURL
請注意,部分 runConfig
值 (例如 CPU) 也已覆寫
來處理任何重疊的環境變數
步驟 3:部署程式碼集
編輯完成環境專屬的 apphosting.ENVIRONMENT_NAME.yaml
檔案後,請將檔案推送至 GitHub:
$ git add apphosting.<ENVIRONMENT_NAME>.yaml
$ git commit -m "Added environment specific yaml file"
$ git push
所有以這個環境名稱標記的後端都會使用特定覆寫值
您指定的值後,再改回使用
apphosting.yaml
。若後端沒有
環境名稱,您可以繼續使用 apphosting.yaml。
後續步驟
- 深入探討:瞭解 Firebase 程式碼研究室,將代管應用程式與 Firebase 驗證和 Google AI 功能: Next.js: Angular (Angular)
- 連結自訂網域。
- 設定後端。
- 監控推出作業、網站使用情況和記錄。