Kích hoạt Cloud Function dựa trên sự kiện Cloud Storage trong GCP
Google Cloud Functions tích hợp với Cloud Storage để tự động thực thi mã khi các đối tượng được tạo, cập nhật hoặc xóa. Điều này rất hữu ích cho tự động hóa, xử lý hình ảnh/video, ghi nhật ký và các quy trình. 🚀
Mục tiêu bài viết
Chúng ta sẽ thực hiện các bước sau đây:
- Tạo một Cloud Storage Bucket
- Tạo một Cloud Function với Trigger từ sự kiện Cloud Storage
- Tải lên tệp và xác minh nhật ký
Bước 1: Tạo Cloud Storage Bucket
Hướng dẫn tạo Bucket
- Truy cập vào Cloud Storage và chọn TẠO.
- Nhập tên Bucket:
mycfdemobucket1021(tên phải duy nhất toàn cầu). - Giữ nguyên các tùy chọn khác ở mặc định.
- Nhấn TẠO.
Bước 2: Tạo Cloud Function với Trigger từ Storage
Tab cấu hình
- Tên Function:
cf-demo3-events-storage - Vùng:
us-central1 - Trigger: Cloud Storage
- Loại sự kiện:
google.cloud.storage.object.v1.finalized(Đối tượng được tạo/cập nhật) - Bucket:
mycfdemobucket1021 - Giữ nguyên tất cả các tùy chọn mặc định và nhấn TIẾP THEO.
Tab mã nguồn
- Runtime:
Node.js 22 - Sử dụng mã tự động sinh bên dưới:
javascript
const functions = require('@google-cloud/functions-framework');
// Đăng ký một callback CloudEvent với Functions Framework sẽ
// được kích hoạt bởi Cloud Storage.
functions.cloudEvent('helloGCS', cloudEvent => {
console.log(`Mã sự kiện: ${cloudEvent.id}`);
console.log(`Loại sự kiện: ${cloudEvent.type}`);
const file = cloudEvent.data;
console.log(`Bucket: ${file.bucket}`);
console.log(`Tệp: ${file.name}`);
console.log(`Phiên bản metadata: ${file.metageneration}`);
console.log(`Thời gian tạo: ${file.timeCreated}`);
console.log(`Thời gian cập nhật: ${file.updated}`);
});
Bước 3: Xem nhật ký của Cloud Function
- Truy cập vào: Cloud Functions →
cf-demo3-events-storage→ Nhật ký. - Bạn sẽ thấy nhật ký mỗi khi một tệp được tải lên hoặc cập nhật.
Bước 4: Tải lên một tệp mới
Hướng dẫn tải lên
- Truy cập vào Cloud Storage → Tải lên tệp → Chọn
myfile1.txt. - Truy cập vào nhật ký Cloud Function → Xác minh nhật ký sự kiện tệp.
Thực tiễn tốt nhất
- Kiểm tra tên bucket: Đảm bảo rằng tên bucket duy nhất và dễ nhớ.
- Quản lý quyền truy cập: Sử dụng IAM để quản lý quyền truy cập vào Cloud Storage và Cloud Functions.
- Theo dõi chi phí: Theo dõi chi phí sử dụng Cloud Functions và Cloud Storage để đảm bảo không vượt quá ngân sách.
Cạm bẫy thường gặp
- Tên bucket trùng lặp: Không thể sử dụng tên bucket đã tồn tại trên toàn cầu.
- Quyền truy cập không đủ: Đảm bảo rằng bạn có quyền truy cập đầy đủ để tạo Cloud Function và Cloud Storage Bucket.
Mẹo về hiệu suất
- Sử dụng kích thước tệp nhỏ: Đối với các tác vụ xử lý nhanh, nên sử dụng tệp nhỏ hơn để giảm độ trễ.
- Tối ưu hóa mã: Đảm bảo mã trong Cloud Function được tối ưu hóa để giảm thời gian phản hồi.
Khắc phục sự cố
- Không thấy nhật ký: Kiểm tra lại cấu hình của Cloud Function và Bucket.
- Lỗi không có quyền: Kiểm tra và cấp quyền cho IAM nếu gặp lỗi truy cập.
Kết luận
🎉 Bạn đã thành công trong việc tạo một Cloud Function với Trigger từ sự kiện Cloud Storage. Mỗi khi một tệp được tải lên hoặc cập nhật, function sẽ ghi lại các thông tin chi tiết như tên bucket, tên tệp và thời gian.
Đừng quên chia sẻ kinh nghiệm của bạn và áp dụng những gì đã học vào các dự án thực tế! Nếu bạn có thắc mắc, hãy để lại câu hỏi dưới bài viết này nhé.
Câu hỏi thường gặp (FAQ)
1. Cloud Functions là gì?
Cloud Functions là dịch vụ máy chủ không cần quản lý của Google cho phép bạn chạy mã mà không cần quản lý hạ tầng.
2. Tôi có thể sử dụng ngôn ngữ lập trình nào cho Cloud Functions?
Hiện tại, Cloud Functions hỗ trợ Node.js, Python, Go, và nhiều ngôn ngữ khác.
3. Làm thế nào để giám sát Cloud Functions?
Bạn có thể theo dõi thông qua Cloud Logging và Cloud Monitoring để xem nhật ký và số liệu thống kê.