Hầu hết thời gian, bạn nên sử dụng phát hành tự động hoặc phát hành theo cách thủ công từ bảng điều khiển Firebase. Tuy nhiên, bạn có thể cần một 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 vào App Hosting mà không cần kết nối GitHub liên tục.
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 tạo của khung trong Cloud Build và triển khai các cấu phần phần mềm đã biên dịch vào Cloud Run và Cloud CDN. Quy trình xây dựng tương tự được dùng cho các lượt triển khai nguồn cục bộ như các lượt triển khai GitHub. Nếu có tệp .gitignore trong dự án, thì các tệp và thư mục được liệt kê bên trong tệp đó 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 CLI Firebase hoặc bảng điều khiển Firebase.
Các quyền IAM bắt buộc và chế độ thiết lập cơ sở hạ tầng
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à tạo kho lưu trữ nguồn, nên cùng một yêu cầu về quyền IAM 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 thông tin tổng quan về IAM của Firebase và các quyền cụ thể đối với dịch vụ Lưu trữ ứng dụng Firebase.
Quyền đối với quy trình thiết lập ban đầu (Triển khai lần đầu tại một vị trí)
Khi quá trình triển khai nguồn cục bộ được bắt đầu tại một vị trí dự án lần đầu tiên, Hosting phải cung cấp một vùng chứa GCS để lưu trữ các tệp lưu trữ của bạn và cấp cho Đặc vụ dịch vụ Hosting quyền truy cập để tiếp cận các tệp đó. Vì đây là các tác 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 chế độ thiết lập ban đầu này và sẽ bị chặn.
Các quyền thiết lập tiên quyết bao gồm:
- Bật Storage API:
serviceusage.services.enable - Tạo vùng chứa nguồn:
storage.buckets.createvàstorage.buckets.list - Định cấu hình Service Agent:
resourcemanager.projects.setIamPolicyđể cấp cho Hosting quyền đọc (roles/storage.objectViewer) để có thể tìm nạp mã đã tải lên trong quá trình tạo.
Đối với việc triển khai ban đầu, vùng chứa GCS được tạo với vòng đời 30 ngày, sau đó vùng chứa sẽ bị xoá. Tuy nhiên, bạn có thể quản lý khung thời gian này trong bảng điều khiển Cloud trong Cloud Storage -> Buckets -> Lifecycle -> Rules. 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 vị trí được khởi tạo)
Sau khi bạn khởi tạo nhóm nguồn và các liên kết vai trò 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 App HostingQuản trị viên thông thường có thể triển khai các bản cập nhật. Bạn không cần có quyền quản trị ở cấp dự án cho các hoạt động triển khai thông thường.
Các quyền triển khai đang hoạt động bao gồm:
- Xác minh nhóm:
storage.buckets.list - Tải tệp lưu trữ nguồn lên:
storage.objects.create - Kích hoạt quy trình tạo và triển khai: Quyền Hosting tiêu chuẩn (
apphosting.builds.createvàapphosting.rollouts.create)
Triển khai từ nguồn bằng CLI Firebase
Firebase CLI phiên bản 14.4.0 trở lên cho phép bạn truyền mã nguồn và cấu hình của ứng dụng trực tiếp từ máy cục bộ lên 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ư các 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
- Các dự án của bạn phải thuộc gói Blaze.
- Bạn phải đang 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 một dự án hiện có rồi chọn dự án Firebase mục tiêu.
- 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 hoạt động triển khai Hosting cho thư mục cục bộ của bạn 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
- Vùng 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 thời gian chạy có phiên bản sẽ cho phép Cập nhật tự động 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 triển khai của bạn 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 tạo hoàn tất, hãy chạyfirebase deployđể triển khai mã nguồn.
Ví dụ về 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 các ứng dụng bằng cách tải trực tiếp một tệp lưu trữ nguồn nén lên. Đây là một lựa chọn thay thế cho quy trình kết nối GitHub, trong 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ể thực hiện việc tải tệp 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 công khai theo cách 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 trên bảng điều khiển 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
Lựa chọn A: Trong quá trình thiết lập ban đầu cho phần phụ trợ
- 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 như thế nào?".
- Chuẩn bị tham gia: Khi bạn nhấp vào "Tiếp theo", quy trình chuẩn bị ở chế độ nền sẽ được kích hoạt. Quy trình này sẽ tuần tự bật Storage API, đảm bảo thiết lập đúng vai trò và upsert vùng chứa. Giao diện người dùng hiển thị một biểu tượng tải hình tròn kèm theo các thông báo trạng thái động: "Đang bật API...", "Đang kiểm tra quyền..." và "Đang chuẩn bị vùng lưu trữ...".
- Xử lý lỗi và biện pháp bảo vệ: Nếu bất kỳ bước chuẩn bị nào không thành công (chẳng hạn như một 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 chuyên biệt hướng dẫn bạn liên hệ với Chủ sở hữu dự án. Thanh điều hướng theo bước bị khoá hoàn toàn, 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à biện pháp bảo vệ: Nếu bất kỳ bước chuẩn bị nào không thành công (chẳng hạn như một 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.
Định cấu hình chế độ cài đặt: Chỉ định Thư mục gốc của ứng dụng (mặc định là
/).Nhấp vào Hoàn tất và triển khai: Nút "Hoàn tất" độc lập bị vô hiệu hoá đối với tệp tải lên zip vì việc tải tệp lưu trữ lên là hành động một lần và phải được triển khai ngay sau đó để đảm bảo một phần phụ trợ hoạt động.
Cách B: Tạo bản phát hành từng phần
- Mở hộp thoại: Trong trang tổng quan Hosting, hãy nhấp vào Tạo bản phát hành công khai.
- Chọn nguồn: Chọn Tải tệp zip lên trong bộ chọn 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 sẽ kích hoạt cùng một quy trình chuẩn bị trong nền ("Đang bật API...", "Đang kiểm tra quyền..." và "Đang chuẩn bị vùng lưu trữ..."). Sau khi thành công, hãy kéo hoặc chọn tệp lưu trữ 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 bản dựng và quá trình 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 được 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 cách sử dụng các tệp cấu hình khai báo, đồng thời cung cấp khả năng triển khai hình ảnh vùng chứa được tạo sẵn của riêng bạn trực tiếp vào 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à các App Hostingtà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 một kho lưu trữ GitHub bất cứ lúc nào trong thẻ Triển khai của phần cài đặt 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 bạn đã sẵn sàng.
Triển khai bằng các 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ù các 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 nội dung 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.