Trong hầu hết trường hợp, bạn nên sử dụng tính năng triển khai tự động hoặc triển khai được kích hoạt theo cách thủ công từ bảng điều khiển Firebase. Tuy nhiên, bạn có thể sử dụng quy trình triển khai tuỳ chỉnh hơn. App Hosting có nhiều lựa chọn để triển khai tuỳ chỉnh.
Triển khai từ nguồn
Việc triển khai từ nguồn cho phép bạn đẩy mã nguồn và cấu hình của ứng dụng trực tiếp lên App Hosting mà không cần kết nối liên tục với GitHub.
Khi triển khai từ nguồn, App Hosting sẽ tải mã nguồn của bạn lên một bộ chứa Google Cloud Storage, chạy lệnh bản dựng của khung trong Cloud Build và triển khai các cấu phần phần mềm đã biên dịch cho Cloud Run và Cloud CDN. Quy trình xây dựng tương tự được dùng cho cả hoạt động triển khai nguồn cục bộ và triển khai GitHub. Nếu tệp .gitignore có trong dự án của bạn, thì các tệp và thư mục được liệt kê trong đó sẽ bị loại trừ khỏi quá trình triển khai.
Bạn có thể triển khai từ một nguồn cục bộ bằng cách sử dụng Firebase CLI hoặc Firebase bảng điều khiển.
Quyền IAM và cách thiết lập cơ sở hạ tầng cần thiết
Vì cả CLI Firebase và bảng điều khiển Firebase đều sử dụng cùng một cơ sở hạ tầng phụ trợ để lưu trữ và xây dựng tệp lưu trữ nguồn, nên các yêu cầu về quyền IAM giống nhau sẽ áp dụng cho cả hai phương thức triển khai.
Các yêu cầu chính xác phụ thuộc vào việc bạn có triển khai đến một vị trí (khu vực) cụ thể lần đầu tiên hay không. Để biết thêm thông tin về các quyền, hãy xem tổng quan về Firebase IAM và các quyền cụ thể của Firebase App Hosting.
Quyền cho quy trình làm quen ban đầu (Lần triển khai đầu tiên tại một địa điểm)
Khi quá trình triển khai nguồn cục bộ được bắt đầu lần đầu tiên tại một vị trí dự án, App Hosting phải cung cấp một bộ chứa GCS để lưu trữ tệp lưu trữ của bạn và cấp quyền truy cập cho Tác nhân dịch vụ App Hosting để truy cập vào các tệp đó. Vì đây là các nhiệm vụ quản trị ở cấp dự án, nên bạn cần có quyền của Chủ sở hữu dự án hoặc Quản trị viên IAM. Người dùng có vai trò Người chỉnh sửa hoặc Người xem cơ bản không thể thực hiện bước thiết lập ban đầu này và sẽ bị chặn.
Các quyền cần thiết để thiết lập bao gồm:
- Bật Storage API:
serviceusage.services.enable - Tạo bộ chứa nguồn:
storage.buckets.createvàstorage.buckets.list - Định cấu hình tác nhân dịch vụ:
resourcemanager.projects.setIamPolicyđể cấp cho App Hosting quyền đọc (roles/storage.objectViewer) để tác nhân này có thể tìm nạp mã đã tải lên trong quá trình tạo bản dựng.
Đối với lần triển khai đầu tiên, bộ chứa GCS được tạo với vòng đời 30 ngày, sau đó bộ chứa sẽ bị xoá. Tuy nhiên, bạn có thể quản lý khung thời gian này trong Cloud Console, tại phần Cloud Storage -> Buckets (Bộ chứa) -> Lifecycle (Vòng đời) -> Rules (Quy tắc). Xem phần quản lý vòng đời của đối tượng.
Quyền cho các lần triển khai tiếp theo (Sau khi khởi chạy vị trí)
Sau khi bộ chứa nguồn và các liên kết vai trò đã được khởi chạy cho một vị trí (bằng cách triển khai CLI ban đầu hoặc thiết lập bảng điều khiển), Nhà phát triển, Người chỉnh sửa hoặc Quản trị viên App Hosting thông thường có thể triển khai bản cập nhật. Bạn không cần có quyền quản trị ở cấp dự án để triển khai định kỳ.
Các quyền triển khai đang hoạt động bao gồm:
- Xác minh bộ chứa:
storage.buckets.list - Tải tệp lưu trữ nguồn lên:
storage.objects.create - Kích hoạt bản dựng và phát hành: Quyền App Hosting tiêu chuẩn (
apphosting.builds.createvàapphosting.rollouts.create)
Triển khai từ nguồn bằng Firebase CLI
Firebase CLI phiên bản 14.4.0 trở lên cho phép bạn đẩy mã nguồn và cấu hình của ứng dụng trực tiếp từ máy cục bộ sang Firebase. Điều này rất thuận tiện nếu bạn đã quản lý các hoạt động triển khai Firebase khác (chẳng hạn như quy tắc bảo mật hoặc hàm) và muốn triển khai ứng dụng web cũng như dịch vụ phụ trợ cùng với một lệnh CLI duy nhất.
Điều kiện tiên quyết
- Dự án của bạn phải sử dụng gói Blaze.
- Bạn phải chạy firebase-tools phiên bản 14.4.0 trở lên.
Các bước triển khai
- Chạy
firebase init apphostingtrong thư mục dự án cục bộ. - Khi được nhắc, hãy chọn Sử dụng dự án hiện có rồi chọn dự án Firebase mục tiêu của bạn.
- Chọn một phần phụ trợ mới hoặc hiện có để triển khai; bước này thiết lập các bản triển khai App Hosting cho thư mục cục bộ và nhắc bạn cung cấp thông tin chi tiết về cấu hình:
- Mã nhận dạng của phần phụ trợ cần triển khai
- Khu vực cần triển khai, nếu tạo một phần phụ trợ mới
- Đường dẫn đến thư mục gốc của mã xử lý ứng dụng
- Thời gian chạy Node.js mà bạn muốn. Việc chọn một môi trường thời gian chạy theo phiên bản sẽ cho phép tính năng Tự động cập nhật hình ảnh cơ sở (ABIU) tự động áp dụng các bản vá bảo mật cho môi trường cơ bản của bạn.
- App Hosting lưu các lựa chọn ưu tiên về việc triển khai trong
firebase.json, tạo tệp trong dự án cục bộ nếu tệp chưa tồn tại. Sau khi quá trình khởi chạy hoàn tất, hãy chạyfirebase deployđể triển khai mã nguồn của bạn.
Ví dụ về tệp firebase.json
{
"apphosting": [
{
"backendId": "my-backend",
// rootDir specifies the directory containing the app to deploy, but the entire
// parent directory of firebase.json will be zipped and uploaded to ensure that
// dependencies outside of the app directory will be available at build time.
"rootDir": "./my-app",
"ignore": [
"node_modules",
".git",
"firebase-debug.log",
"firebase-debug.*.log",
"functions"
]
}
]
}
Triển khai bằng Bảng điều khiển của Firebase (Tải tệp ZIP lên)
Bảng điều khiển Firebase cung cấp giao diện đồ hoạ để triển khai ứng dụng bằng cách tải trực tiếp tệp lưu trữ nguồn nén lên. Đây là một giải pháp thay thế cho quy trình kết nối GitHub, dành cho những trường hợp bạn không muốn sử dụng GitHub hoặc muốn thiết lập CI/CD theo cách khác.
Bạn có thể tải bản lưu trữ lên trong quá trình tạo phần phụ trợ ban đầu hoặc khi tạo bản phát hành thủ công trên một phần phụ trợ hiện có, bao gồm cả những phần phụ trợ được triển khai ban đầu bằng CLI Firebase.
Định dạng được hỗ trợ
Trình tải lên của Play Console xác thực và chấp nhận hai định dạng lưu trữ nén:
.zip.tgz
Các định dạng này được hiển thị rõ ràng trong văn bản mô tả của trình tải tệp lên.
Các bước triển khai
Cách A: Trong quá trình thiết lập phần phụ trợ ban đầu
- Chọn nguồn: Trong trình hướng dẫn tạo phần phụ trợ, hãy chọn Tải tệp zip lên trong bước "Bạn muốn nhập ứng dụng của mình bằng cách nào?".
- Chuẩn bị tham gia: Khi bạn nhấp vào "Tiếp theo", quy trình chuẩn bị trong nền sẽ được kích hoạt. Quy trình này sẽ bật Storage API theo trình tự, đảm bảo thiết lập đúng vai trò và cập nhật bộ chứa. Giao diện người dùng hiển thị một vòng quay tải có thông báo trạng thái động: "Đang bật API...", "Checking permissions..." (Đang kiểm tra quyền...) và "Preparing bucket..." (Đang chuẩn bị bộ chứa...).
- Xử lý lỗi và rào chắn: Nếu có bước chuẩn bị nào không thành công (chẳng hạn như người không phải là Chủ sở hữu nhận được
403 PERMISSION_DENIEDdo không có đủ quyền IAM), thì giao diện người dùng sẽ hiển thị một cảnh báo riêng hướng dẫn bạn liên hệ với Chủ sở hữu dự án. Thao tác điều hướng theo bước bị khoá nghiêm ngặt, đồng thời nút "Tiếp theo" và nút "Hoàn tất và triển khai" cuối cùng vẫn bị tắt cho đến khi vấn đề được giải quyết.
- Xử lý lỗi và rào chắn: Nếu có bước chuẩn bị nào không thành công (chẳng hạn như người không phải là Chủ sở hữu nhận được
- Tải tệp lên: Sau khi chuẩn bị xong, hãy chọn hoặc kéo tệp lưu trữ vào thành phần trình tải tệp lên.
Configure Settings (Định cấu hình chế độ cài đặt): Chỉ định App root directory (Thư mục gốc của ứng dụng) (mặc định là
/).Nhấp vào Finish and Deploy (Hoàn tất và triển khai): Nút "Finish" (Hoàn tất) độc lập bị tắt đối với các tệp tải lên dạng zip vì việc tải một tệp lưu trữ lên là một hành động một lần và phải được triển khai ngay sau đó để đảm bảo phần phụ trợ hoạt động.
Cách B: Tạo bản phát hành thủ công
- Mở hộp thoại: Trong trang tổng quan App Hosting, hãy nhấp vào Tạo bản phát hành.
- Chọn nguồn: Chọn Tải tệp zip lên trong trình hướng dẫn từng bước của hộp thoại. Nếu phần phụ trợ không có kết nối GitHub hiện có, thì lựa chọn "GitHub" sẽ bị tắt.
- Chuẩn bị và tải lên: Lựa chọn này kích hoạt cùng một quy trình chuẩn bị trong nền ("Đang bật API...", "Checking permissions..." (Đang kiểm tra quyền...) và "Preparing bucket..." (Đang chuẩn bị bộ chứa...). Sau khi thành công, hãy kéo hoặc chọn tệp lưu trữ của bạn bằng trình tải lên, chỉ định Thư mục gốc của ứng dụng rồi nhấp vào Triển khai để kích hoạt quá trình tạo bản dựng và phát hành.
Triển khai bằng Terraform
Nếu cần kiểm soát chặt chẽ hơn quy trình xây dựng và môi trường triển khai, bạn có thể triển khai bằng Terraform. Terraform cho phép bạn xác định và quản lý các tài nguyên App Hosting bằng tệp cấu hình khai báo, đồng thời cung cấp khả năng triển khai trực tiếp hình ảnh vùng chứa tạo sẵn của riêng bạn lên App Hosting thay vì dựa vào App Hosting để tạo từ mã nguồn của bạn.
Nếu bạn mới sử dụng Terraform, hãy xem bài viết Bắt đầu sử dụng Terraform và Firebase. Nếu đã quen thuộc với Terraform, bạn có thể bắt đầu bằng các tệp cấu hình mẫu và App Hosting tài nguyên khác.
Thiết lập kết nối GitHub cho quy trình CI/CD
Bạn có thể kết nối kho lưu trữ GitHub bất cứ lúc nào trong thẻ Deployment (Triển khai) của phần cài đặt phần phụ trợ trong bảng điều khiển Firebase. Nhờ đó, bạn có thể triển khai một nguyên mẫu ứng dụng từ môi trường cục bộ, sau đó chuyển sang quy trình CI/CD tự động khi đã sẵn sàng.
Triển khai bằng công cụ AI
Chúng tôi sẽ ngừng cung cấp Firebase Studio từ ngày 22 tháng 3 năm 2027. Mặc dù phần phụ trợ App Hosting của bạn không bị ảnh hưởng, nhưng nút Xuất bản trong Firebase Studio sẽ ngừng hoạt động. Để tiếp tục xuất bản bản cập nhật mà không cần thay đổi URL, hãy di chuyển dự án của bạn. Tìm hiểu cách di chuyển.