Người sáng tạo là huyết mạch của bất kỳ nền tảng nội dung do người dùng tạo (UGC) nào. Một trong những thách thức khi xây dựng ứng dụng UGC phát trực tiếp là cung cấp cho người tạo nội dung những công cụ họ cần để tăng lượng người xem. Không có người xem, người sáng tạo sẽ không có động lực để tạo nội dung (và không có người sáng tạo có động lực, chúng tôi sẽ không có nền tảng). Sau khi người xem tìm thấy người sáng tạo mà họ thích tương tác, họ sẽ đăng ký kênh đó và mong muốn được theo dõi bất cứ khi nào người sáng tạo đó trực tuyến. Đây là lúc mọi thứ trở nên phức tạp - bởi vì hầu hết người xem sẽ không đăng nhập vào ứng dụng của chúng tôi mở 24/7 để kiểm tra xem người sáng tạo yêu thích của họ có trực tuyến hay không. Để khuyến khích họ quay lại nền tảng của chúng tôi, chúng tôi cần xây dựng một hệ thống thông báo để thông báo cho người xem khi các luồng yêu thích của họ đang trực tuyến. Rất may, đây là thứ khá dễ xây dựng với Amazon Interactive Video Service (Amazon IVS). Trong bài đăng này, chúng ta sẽ xem xét cách thông báo cho người xem khi luồng Amazon IVS trực tuyến. EventBridge qua các luồng gặp sự cố Để xây dựng tính năng này, chúng tôi sẽ tận dụng lợi thế của việc Amazon IVS gửi các sự kiện thay đổi về trạng thái luồng của chúng tôi tới Amazon EventBridge. Tích hợp này có thể được sử dụng cho nhiều mục đích khác nhau, vì có rất nhiều sự kiện được xuất bản cho mỗi luồng. Dưới đây là danh sách chỉ một vài sự kiện được xuất bản: Tạo / Kết thúc phiên Bắt đầu / Kết thúc luồng / Không thành công Bắt đầu / Kết thúc ghi âm Để biết danh sách đầy đủ các sự kiện, hãy xem . tài liệu Như bạn có thể đoán, sự kiện mà chúng ta sẽ tận dụng là sự kiện . Hãy tạo một quy tắc sẽ được kích hoạt mỗi khi luồng của chúng ta bắt đầu. Bắt đầu phát trực tiếp Tạo hàm AWS Lambda Handler Trước khi tạo Quy tắc EventBridge, chúng ta cần tạo Hàm AWS Lambda sẽ được gọi từ quy tắc (hàm này phải tồn tại trước khi có thể tạo quy tắc). Chúng tôi sẽ sử dụng Nút 18.x mới có sẵn cho chức năng của mình. Chức năng này sẽ là cách chúng tôi gửi thông báo cho người đăng ký khi luồng phát trực tiếp. Trong ứng dụng của bạn, bạn có thể sử dụng bất kỳ phương pháp nào hoạt động tốt nhất để gửi thông báo. Nếu bạn có ứng dụng dành cho thiết bị di động hoặc PWA, bạn có thể muốn gửi thông báo đẩy. Có thể người đăng ký của bạn thích thông báo qua email hơn? Hoặc có thể bạn muốn đăng một tin nhắn lên nguồn cấp dữ liệu mạng xã hội hoặc kênh Discord/Slack. Có lẽ bạn muốn sử dụng Amazon SNS để gửi tin nhắn SMS cho người đăng ký? Có rất nhiều lựa chọn khác nhau ở đây và không có giới hạn. Trong trường hợp của tôi, tôi đang sử dụng để gửi thông báo đẩy tới thiết bị di động của mình. Pushover có API dựa trên REST dễ sử dụng. Pushover export const handler = async(event) => { // push notification using Pushover.net const formData = new FormData(); formData.append('token', process.env.PUSHOVER_APP_TOKEN); formData.append('user', process.env.PUSHOVER_USER_TOKEN); formData.append('title', `${event.detail.channel_name} is Live!!!`); formData.append('message', 'Watch now!'); formData.append('url', 'https://recursive.codes'); const pushoverResponse = await fetch('https://api.pushover.net/1/messages.json', { method: 'POST', body: formData }); }; Tạo quy tắc EventBridge Quy tắc này có thể được tạo bằng AWS CLI ( ), bất kỳ SDK AWS nào hoặc Bảng điều khiển AWS. Đối với bài đăng này, chúng tôi sẽ tập trung vào giao diện điều khiển. Đăng nhập vào bảng điều khiển Amazon EventBridge, chọn và nhấp vào . docs Quy tắc EventBridge Tạo quy tắc Trên trang tiếp theo, đặt cho quy tắc một , một tùy chọn , chọn , chọn và nhấp vào . Tên Mô tả Xe buýt sự kiện Quy tắc có mẫu sự kiện Tiếp theo Chọn . sự kiện AWS hoặc sự kiện đối tác EventBridge Nếu bạn muốn tạo một sự kiện mẫu cho mục đích thử nghiệm, hãy chọn và dán vào mẫu sau. Enter my own { "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Stream State Change", "source": "aws.ivs", "account": "123456789012", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": ["arn:aws:ivs:us-east-1:123456789012:channel/12345678-1a23-4567-a1bc-1a2b34567890"], "detail": { "event_name": "Stream Start" } } Trong , chọn , sau đó chọn của . Đối với , hãy chọn . Cuối cùng, bên dưới , chọn . Phương thức tạo Sử dụng biểu mẫu mẫu Nguồn sự kiện dịch vụ AWS dịch vụ AWS Dịch vụ video tương tác (IVS) Loại sự kiện IVS Stream Stage Change Chúng tôi có thể giữ nguyên hoặc chúng tôi có thể giới hạn quy tắc này chỉ cho sự kiện bằng cách nhấp vào và sửa đổi nó thành như sau: mẫu Sự kiện Bắt đầu phát trực tiếp Chỉnh sửa mẫu { "source": ["aws.ivs"], "detail-type": ["IVS Stream State Change"], "detail": { "event_name": ["Stream Start"] } } Nhấp vào để đảm bảo rằng khớp với sự kiện mẫu ở trên, sau đó nhấp vào . Mẫu thử nghiệm mẫu Sự kiện Tiếp theo Trong bước tiếp theo, bên dưới , hãy chọn . Trong phần , chọn , sau đó tìm và chọn Lambda function mà chúng ta đã tạo trước đó. Mục tiêu 1 dịch vụ AWS Selet a target Lambda function Nhấp vào , nhập bất kỳ thẻ mong muốn nào, sau đó xem lại và tạo quy tắc. Tiếp theo phát trực tiếp Tất cả chúng ta đã sẵn sàng để kiểm tra quy tắc của mình. Để làm như vậy, chúng tôi chỉ cần bắt đầu phát tới kênh Amazon IVS. Khi chúng tôi thực hiện, quy tắc của chúng tôi sẽ kích hoạt và hàm Lambda của chúng tôi sẽ được gọi. Trong trường hợp của tôi, điều đó dẫn đến một thông báo đẩy đẹp mắt trên thiết bị di động của tôi. Bản tóm tắt Trong bài đăng này, chúng tôi đã tạo hàm AWS Lambda để gửi thông báo đẩy và tạo quy tắc Amazon EventBridge để gọi hàm đó khi luồng trực tiếp Amazon IVS của chúng tôi bắt đầu. Chức năng của bạn có thể sẽ liên quan đến một số logic bổ sung để tra cứu người đăng ký dựa trên kênh hiện đang phát sóng, bạn có thể thực hiện việc này dựa trên ARN có trong trong chi tiết sự kiện. Để tìm hiểu thêm, hãy tham khảo . resources tài liệu