Thường thì có nhiều môi trường được triển khai từ cùng một cơ sở mã, mỗi môi trường có cấu hình hơi khác. Ví dụ: bạn có thể muốn chỉ định CPU và RAM cho môi trường chạy thử của bạn hoặc có thể bạn muốn đảm bảo môi trường sản xuất giúp ít nhất 1 thực thể hoạt động và sẵn sàng phân phát yêu cầu. Bạn cũng có thể cần chỉ định các biến môi trường khác nhau và khoá bí mật tuỳ thuộc vào môi trường và tài nguyên mà bạn muốn sử dụng.
Hướng dẫn này mô tả cách triển khai một môi trường thử nghiệm và sản xuất, mỗi một dự án Firebase riêng biệt. Theo cùng các nguyên tắc, bạn có thể triển khai để các loại môi trường khác nhau. Để tìm hiểu thêm về môi trường, hãy xem trong phần Tổng quan về môi trường và Chung các phương pháp hay nhất để thiết lập Firebase dự án.
Điều kiện tiên quyết
- Mã xử lý ứng dụng của bạn đã được lưu trữ trong GitHub.
- Bạn đã tạo một dự án riêng cho mỗi
môi trường—ví dụ:
my-production-firebase-project
vàmy-staging-firebase-project
Hãy nhớ gắn thẻ Firebase chính thức của bạn dự án có vai trò "chính thức" môi trường . - Trong mỗi dự án, bạn đã tạo một phần phụ trợ App Hosting, trong đó
nhánh được đặt thành nhánh GitHub mà bạn muốn triển khai (chẳng hạn như
main
). Xem Bắt đầu sử dụng App Hosting để biết thêm thông tin của bạn.
Bước 0: Tạo cấu hình mặc định trong apphosting.yaml
App Hosting hỗ trợ tệp cấu hình có tên apphosting.yaml
để quản lý
các chế độ cài đặt thời gian chạy (CPU, mô hình đồng thời, giới hạn bộ nhớ, v.v.) và môi trường
các biến cho ứng dụng của mình. Tính năng này cũng hỗ trợ việc tham chiếu đến các khoá bí mật được quản lý bằng
Cloud Secret Manager, giúp đảm bảo an toàn khi kiểm tra chế độ kiểm soát nguồn. Để biết thêm
thông tin, hãy xem Định cấu hình
phần phụ trợ.
Để bắt đầu, hãy tạo một tệp apphosting.yaml
trong thư mục gốc của ứng dụng.
Đây là tệp cấu hình dự phòng được dùng khi
không tìm thấy tệp cấu hình dành riêng cho môi trường. Các giá trị được lưu trữ trong
apphosting.yaml
phải là các giá trị mặc định an toàn để sử dụng trong mọi môi trường.
Các phần tiếp theo giải thích cách ghi đè các giá trị mặc định trong apphosting.yaml
cho các môi trường cụ thể. Luồng ví dụ này tạo ra một môi trường thử nghiệm.
Bước 1: Đặt tên môi trường
Mỗi phần phụ trợ App Hosting có một chế độ cài đặt Tên môi trường. Trường này là được dùng để ánh xạ phần phụ trợ của bạn với một tệp cấu hình dành riêng cho môi trường và có thể có thể thay đổi bất cứ lúc nào. Bạn chỉ có thể đặt một tên môi trường cho mỗi phần phụ trợ.
Để đặt tên môi trường của phần phụ trợ,
- Trong bảng điều khiển của Firebase, hãy chọn dự án thử nghiệm của bạn (trong ví dụ này là dự án Firebase của tôi).
- Chọn App Hosting trên thanh điều hướng bên trái.
- Nhấp vào Xem trang tổng quan trên phần phụ trợ mà bạn đã chọn.
- Trong thẻ Cài đặt, hãy chọn Triển khai.
- Trong mục Tên môi trường,hãy nhập tên cho môi trường của bạn. Bạn có thể đặt tên môi trường bất cứ khi nào bạn muốn. Trong ví dụ này, đó là chạy thử.
- Nhấp vào Lưu.
Khi quá trình phát hành App Hosting được kích hoạt cho phần phụ trợ của bạn (trên git
đẩy hoặc thủ công thông qua bảng điều khiển), App Hosting sẽ kiểm tra
apphosting.ENVIRONMENT_NAME.yaml
tệp trước
quay lại apphosting.yaml
.
Bước 2: Tạo tệp apphosting.yaml
dành riêng cho môi trường
Đối với cấu hình dành riêng cho môi trường, hãy tạo một tệp có tên
apphosting.ENVIRONMENT_NAME.yaml
để
chỉ định ghi đè dành riêng cho môi trường. Tệp này có cùng định dạng với
apphosting.yaml mặc định và phải được đặt ở
thư mục gốc của ứng dụng cùng với apphosting.yaml
.
Trong thời gian xây dựng, App Hosting sẽ hợp nhất hai tệp này với mức độ ưu tiên là
trong tệp YAML dành riêng cho môi trường trong apphosting.yaml
cơ sở
.
Trong ví dụ này, bạn sẽ tạo một tệp có tên apphosting.staging.yaml
trong
thư mục gốc của ứng dụng:
runConfig:
cpu: 1
memoryMiB: 512
concurrency: 5
env:
- variable: API_URL
value: api.staging.service.com
availability:
- BUILD
- variable: DATABASE_URL
secret: secretStagingDatabaseURL
Giả sử bạn đã có một apphosting.yaml
có dạng như sau:
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
Đầu ra hợp nhất cuối cùng mà bạn có thể kiểm tra trong nhật ký Cloud Build của mình sẽ sẽ có dạng như sau:
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
Lưu ý rằng một số giá trị runConfig
nhất định chẳng hạn như CPU cũng đã bị ghi đè
như bất kỳ biến môi trường chồng chéo nào.
Bước 3: Triển khai cơ sở mã
Sau khi bạn hoàn tất chỉnh sửa tệp apphosting.ENVIRONMENT_NAME.yaml
dành riêng cho môi trường, hãy đẩy tệp đó sang GitHub:
$ git add apphosting.<ENVIRONMENT_NAME>.yaml
$ git commit -m "Added environment specific yaml file"
$ git push
Mọi phần phụ trợ được gắn thẻ bằng tên môi trường này sẽ sử dụng cơ chế ghi đè cụ thể
mà bạn đã chỉ định trong tệp YAML tương ứng và quay lại sử dụng
apphosting.yaml
khi không tìm thấy một giá trị. Đối với các chương trình phụ trợ không có
tên môi trường, bạn có thể tiếp tục sử dụng apphosting.yaml.
Các bước tiếp theo
- Tìm hiểu sâu hơn: tìm hiểu lớp học lập trình Firebase có tích hợp một ứng dụng được lưu trữ với Các tính năng xác thực Firebase và AI của Google: Next.js | Góc
- Kết nối một miền tuỳ chỉnh.
- Định cấu hình phần phụ trợ.
- Theo dõi hoạt động phát hành, mức sử dụng trang web và nhật ký.