Thông thường, bạn sẽ triển khai nhiều môi trường từ cùng một cơ sở mã, mỗi môi trường có cấu hình hơi khác nhau. Ví dụ: bạn có thể muốn chỉ định ít CPU và RAM hơn cho môi trường dàn dựng hoặc bạn có thể muốn đảm bảo môi trường sản xuất của mình duy trì ít nhất 1 phiên bản đang hoạt động và sẵn sàng phục vụ các yêu cầu. Bạn cũng có thể muốn chỉ định các biến môi trường và khoá bí mật khác nhau tuỳ thuộc vào môi trường và tài nguyên bạn muốn sử dụng.
Hướng dẫn này mô tả cách triển khai môi trường phát hành chính thức và môi trường thử nghiệm, mỗi môi trường cho một dự án Firebase riêng biệt. Theo các nguyên tắc tương tự, bạn có thể triển khai cho các loại môi trường khác. Để tìm hiểu thêm về các môi trường, hãy xem phần Tổng quan về các môi trường và Các phương pháp hay nhất nói chung để thiết lập dự án Firebase.
Điều kiện tiên quyết
- Mã ứng dụng của bạn đã được lưu trữ trong GitHub.
- Bạn đã tạo một dự án riêng biệt cho từng môi trường của mình, ví dụ:
my-production-firebase-project
vàmy-staging-firebase-project
. Đừng quên gắn thẻ dự án Firebase phát hành chính thức bằng loại môi trường"phát hành chính thức". - Trong mỗi dự án, bạn đã tạo một phần phụ trợ App Hosting, với nhánh trực tiếp được đặt thành nhánh GitHub mà bạn muốn triển khai (chẳng hạn như
main
). Hãy xem phần Bắt đầu sử dụng App Hosting để biết thêm thông tin.
Bước 0: Tạo cấu hình mặc định trong apphosting.yaml
App Hosting hỗ trợ một tệp cấu hình có tên là apphosting.yaml
để quản lý các chế độ cài đặt thời gian chạy (CPU, mức độ đồng thời, giới hạn bộ nhớ, v.v.) và các biến môi trường cho ứng dụng của bạn. App Hosting cũng hỗ trợ các tham chiếu đến các bí mật được quản lý bằng Cloud Secret Manager, giúp bạn kiểm tra vào hệ thống kiểm soát nguồn một cách an toàn. Để biết thêm thông tin, hãy xem phần Định cấu hình một 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à giá trị mặc định an toàn khi sử dụng cho 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ể. Quy trình ví dụ này tạo một môi trường dàn dựng.
Bước 1: Đặt tên cho Môi trường
Mỗi phần phụ trợ App Hosting đều có chế độ cài đặt Tên môi trường. Trường này được dùng để liên kết 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à bạn có thể thay đổi trường này 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ợ.
Cách đặt tên môi trường cho phần phụ trợ,
- Trong bảng điều khiển của Firebase, hãy chọn dự án dàn dựng của bạn (trong ví dụ này là my-staging-firebase-project).
- Chọn biểu tượng App Hosting trong trình đơn đ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 Môi trường.
- Trong phần Tên môi trường,hãy nhập tên môi trường của bạn. Bạn có thể tuỳ ý đặt tên cho môi trường. Trong ví dụ này, đó là staging.
- Nhấp vào Lưu.
Khi quá trình triển khai App Hosting được kích hoạt cho phần phụ trợ của bạn (trên git push hoặc theo cách thủ công thông qua bảng điều khiển), App Hosting sẽ kiểm tra tệp apphosting.ENVIRONMENT_NAME.yaml
trước khi 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 các chế độ 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 nằm trong thư mục gốc của ứng dụng cùng với apphosting.yaml
.
Vào thời gian xây dựng, App Hosting sẽ hợp nhất hai tệp này, trong đó các giá trị trong tệp YAML dành riêng cho môi trường sẽ được ưu tiên hơn tệp apphosting.yaml
cơ sở.
Trong ví dụ này, bạn sẽ tạo một tệp có tên là 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.firebasestorage.app
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 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.firebasestorage.app
availability:
- RUNTIME
- variable: API_KEY
secret: secretIDforAPI
- variable: DATABASE_URL
secret: secretStagingDatabaseURL
Xin lưu ý rằng một số giá trị runConfig
, chẳng hạn như CPU, cũng đã bị ghi đè, cũng như mọi biến môi trường trùng lặp.
Bước 3: Triển khai cơ sở mã của bạn
Sau khi bạn chỉnh sửa xong tệp apphosting.ENVIRONMENT_NAME.yaml
dành riêng cho môi trường, hãy đẩy tệp đó lên 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ác giá trị ghi đè cụ thể mà bạn đã chỉ định trong tệp YAML tương ứng và quay lại apphosting.yaml
khi không tìm thấy giá trị. Đối với những phần phụ trợ không có tên môi trường được liên kết, 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: xem hướng dẫn trong một lớp học lập trình Firebase tích hợp ứng dụng được lưu trữ với Firebase Authentication và các tính năng AI của Google: Next.js | Angular
- Kết nối một miền tuỳ chỉnh.
- Định cấu hình phần phụ trợ.
- Theo dõi quá trình triển khai, mức sử dụng trang web và nhật ký.