☁️ Kích hoạt Cloud Function từ Cloud Pub/Sub
Google Cloud Functions tích hợp một cách mượt mà với Cloud Pub/Sub, cho phép bạn thực thi mã khi có thông điệp được xuất bản tới một chủ đề. Điều này mở ra khả năng kiến trúc hướng sự kiện, nơi mà các hàm phản ứng với dòng dữ liệu theo thời gian thực. 🚀
Mục tiêu bài viết
Chúng ta sẽ thực hiện:
- Tạo một Cloud Pub/Sub Topic
- Tạo Cloud Function được kích hoạt bởi sự kiện Pub/Sub
Bước 1: Tạo Cloud Pub/Sub Topic
Đi tới Cloud Pub/Sub → TẠO CHỦ ĐỀ
Nhập các thông tin sau:
- Topic ID: mytopic1
- Để các cài đặt còn lại ở mặc định
Nhấn TẠO.
Kiểm tra cài đặt
- Xem lại rằng chủ đề đã được tạo thành công.
- Xác minh rằng Subscription đã được đính kèm.
Bước 2: Tạo Cloud Function với Triggers từ Pub/Sub
Tab Cấu hình
- Tên dịch vụ: cf-demo2-events-pubsub
- Vùng: us-central1
- Trigger: Cloud Pub/Sub
- Chủ đề: mytopic1
- Tùy chọn khác: Xem lại các mặc định
- Nhấn TIẾP THEO.
Tab Mã
- Runtime: Node.js 20
- Sử dụng mã mẫu tự động được điền (dưới đây)
- Nhấn Lưu và TRIỂN KHAI.
javascript
const functions = require('@google-cloud/functions-framework');
// Đăng ký một callback CloudEvent với Functions Framework sẽ
// được thực thi khi chủ đề kích hoạt Pub/Sub nhận được một thông điệp.
functions.cloudEvent('helloPubSub', cloudEvent => {
// Thông điệp Pub/Sub được truyền dưới dạng dữ liệu payload của CloudEvent.
const base64name = cloudEvent.data.message.data;
const name = base64name
? Buffer.from(base64name, 'base64').toString()
: 'Thế giới';
console.log(`Xin chào, ${name}!`);
});
Bước 3: Xem nhật ký Cloud Function
- Đi tới: Cloud Function → cf-demo2-events-pubsub → Nhật ký
- Bạn sẽ thấy nhật ký thực thi khi có thông điệp được xuất bản.
Bước 4: Xuất bản thông điệp tới chủ đề
Đi tới Cloud Pub/Sub → mytopic1 → THÔNG ĐIỆP → XUẤT BẢN THÔNG ĐIỆP
Nhập:
- Số lượng thông điệp: 10
- Nội dung thông điệp: My Pub/Message
Nhấn XUẤT BẢN.
Bước 5: Kiểm tra lại nhật ký
- Đi tới nhật ký Cloud Function
- Bạn sẽ thấy:
plaintext
Xin chào, My Pub/Message!
được ghi lại nhiều lần (một lần cho mỗi thông điệp được xuất bản).
Thực hành tốt nhất
- Giữ cho mã của bạn đơn giản và rõ ràng: Tránh làm phức tạp mã của bạn. Sử dụng các hàm nhỏ và có trách nhiệm cụ thể.
- Kiểm tra và thử nghiệm mã: Đảm bảo rằng bạn thử nghiệm mã của mình trong môi trường phát triển trước khi triển khai lên môi trường sản xuất.
- Quản lý lỗi: Sử dụng các khối try-catch để quản lý các lỗi trong mã của bạn.
Cạm bẫy thường gặp
- Không kiểm tra thông điệp: Đảm bảo bạn xử lý trường hợp khi không có dữ liệu trong thông điệp.
- Thiếu nhật ký: Đảm bảo bạn có nhật ký đủ để theo dõi và gỡ lỗi khi cần thiết.
Mẹo hiệu suất
- Giảm thiểu kích thước thông điệp: Sử dụng các định dạng nén nếu cần thiết để giảm kích thước thông điệp gửi qua Pub/Sub.
- Tối ưu hóa hàm của bạn: Đảm bảo hàm của bạn chạy nhanh và tiết kiệm tài nguyên để tránh chi phí cao.
Vấn đề và giải pháp
- Vấn đề: Không nhận được thông điệp trong Cloud Function.
- Giải pháp: Kiểm tra cài đặt chủ đề và subscription, đảm bảo rằng cả hai đều được cấu hình chính xác.
FAQs
Hỏi: Tôi có thể sử dụng ngôn ngữ nào cho Cloud Functions?
Đáp: Bạn có thể sử dụng Node.js, Python, Go, và nhiều ngôn ngữ khác.
Hỏi: Có bao nhiêu thông điệp tôi có thể gửi qua Pub/Sub?
Đáp: Bạn có thể gửi hàng triệu thông điệp một cách đồng thời, nhưng hãy chú ý đến giới hạn quy mô.
Kết luận
Chúng ta đã xem qua cách tạo một Cloud Function được kích hoạt từ Cloud Pub/Sub trong Google Cloud. Điều này mở ra nhiều khả năng cho các ứng dụng hướng sự kiện. Hãy bắt đầu thử nghiệm ngay hôm nay để xây dựng các ứng dụng mạnh mẽ và linh hoạt hơn!
Đừng quên theo dõi các bài viết tiếp theo để cập nhật những kiến thức mới nhất trong lĩnh vực phát triển phần mềm!