क्रिएटर्स किसी भी यूजर-जनरेटेड कंटेंट (यूजीसी) प्लेटफॉर्म की जान होते हैं। लाइव-स्ट्रीमिंग यूजीसी एप्लिकेशन बनाने की चुनौतियों में से एक सामग्री निर्माताओं को अपने दर्शकों को बढ़ाने के लिए आवश्यक टूल देना है। दर्शकों के बिना, रचनाकार सामग्री बनाने के लिए प्रेरित नहीं होंगे (और प्रेरित रचनाकारों के बिना, हमारे पास कोई मंच नहीं होगा)। जब दर्शकों को एक ऐसा क्रिएटर मिल जाता है जिससे वे इंटरैक्ट करना पसंद करते हैं, तो वे उस चैनल को सब्सक्राइब कर लेते हैं और उस क्रिएटर के ऑनलाइन होने पर उससे जुड़ने की उम्मीद करते हैं। यह वह जगह है जहां चीजें मुश्किल हो जाती हैं - क्योंकि अधिकांश दर्शक यह देखने के लिए 24/7 खुले हमारे आवेदन में लॉग इन नहीं रहेंगे कि उनका पसंदीदा निर्माता ऑनलाइन है या नहीं। उन्हें हमारे प्लेटफॉर्म पर लौटने के लिए प्रोत्साहित करने के लिए, हमें दर्शकों को उनकी पसंदीदा स्ट्रीम ऑनलाइन होने पर सतर्क करने के लिए एक सूचना प्रणाली बनाने की आवश्यकता है। शुक्र है, यह कुछ ऐसा है जो अमेज़ॅन इंटरेक्टिव वीडियो सर्विस (अमेज़ॅन आईवीएस) के साथ बनाना काफी आसान है। इस पोस्ट में, हम देखेंगे कि Amazon IVS स्ट्रीम के ऑनलाइन होने पर दर्शकों को कैसे सूचित किया जाए।
इस सुविधा का निर्माण करने के लिए, हम इस तथ्य का लाभ उठाएंगे कि Amazon IVS Amazon EventBridge को हमारी स्ट्रीम की स्थिति के बारे में परिवर्तन ईवेंट भेजता है। इस एकीकरण का उपयोग कई अलग-अलग उद्देश्यों के लिए किया जा सकता है, क्योंकि बहुत सारी घटनाएं हैं जो हर स्ट्रीम के लिए प्रकाशित होती हैं। यहां कुछ ऐसी घटनाओं की सूची दी गई है जो प्रकाशित होती हैं:
सत्र बनाएं/समाप्त करें
स्ट्रीम प्रारंभ / समाप्ति / विफल
रिकॉर्डिंग प्रारंभ / समाप्ति
घटनाओं की पूरी सूची के लिए, दस्तावेज़ीकरण देखें।
जैसा कि आप अनुमान लगा सकते हैं, जिस घटना का हम लाभ उठाएंगे वह स्ट्रीम स्टार्ट इवेंट है। आइए एक ऐसा नियम बनाएं जो हर बार हमारी स्ट्रीम शुरू होने पर ट्रिगर हो जाएगा।
इससे पहले कि हम एक EventBridge नियम बनाएं, हमें एक AWS लैम्ब्डा फ़ंक्शन बनाने की आवश्यकता है जिसे नियम से बुलाया जाएगा (यह नियम बनाए जाने से पहले मौजूद होना चाहिए)। हम अपने कार्य के लिए नए उपलब्ध नोड 18.x का उपयोग करेंगे।
यह कार्य यह होगा कि स्ट्रीम के लाइव होने पर हम ग्राहकों को सूचनाएं कैसे भेजते हैं। आपके आवेदन में, अधिसूचना भेजने के लिए आप जो भी तरीका सबसे अच्छा काम करते हैं उसका उपयोग कर सकते हैं। यदि आपके पास कोई मोबाइल ऐप या PWA है, तो हो सकता है कि आप एक पुश सूचना भेजना चाहें। हो सकता है कि आपके ग्राहक ईमेल सूचनाएं पसंद करें? या हो सकता है कि आप सोशल मीडिया फीड या डिस्कॉर्ड/स्लैक चैनल पर एक संदेश पोस्ट करना चाहते हों। शायद आप ग्राहकों को एसएमएस संदेश भेजने के लिए अमेज़न एसएनएस का उपयोग करना चाहते हैं? यहाँ ढेर सारे विभिन्न विकल्प हैं और कोई सीमाएँ नहीं हैं। मेरे मामले में, मैं अपने मोबाइल डिवाइस पर पुश नोटिफिकेशन भेजने के लिए पुशओवर का उपयोग कर रहा हूं। पुशओवर के पास एक अच्छा REST- आधारित API है जिसका उपयोग करना आसान है।
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 }); };
यह नियम AWS CLI ( डॉक्स ), किसी भी AWS SDK या AWS कंसोल के साथ बनाया जा सकता है। इस पोस्ट के लिए, हम कंसोल पर ध्यान केंद्रित करेंगे। Amazon EventBridge कंसोल में लॉग इन करें, EventBridge नियम का चयन करें और नियम बनाएं पर क्लिक करें।
अगले पृष्ठ पर, नियम को एक नाम दें, एक वैकल्पिक विवरण दें, एक ईवेंट बस चुनें, एक ईवेंट पैटर्न के साथ नियम चुनें, और अगला क्लिक करें।
एडब्ल्यूएस इवेंट्स या इवेंटब्रिज पार्टनर इवेंट्स चुनें।
यदि आप परीक्षण उद्देश्यों के लिए एक नमूना ईवेंट बनाना चाहते हैं, तो मेरा अपना दर्ज करें का चयन करें और निम्नलिखित पैटर्न में पेस्ट करें।
{ "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" } }
क्रिएशन मेथड के तहत, पैटर्न फॉर्म का उपयोग करें , फिर AWS सेवाओं का एक इवेंट स्रोत चुनें। AWS सेवा के लिए, इंटरएक्टिव वीडियो सेवा (IVS) चुनें। अंत में, इवेंट प्रकार के अंतर्गत, IVS स्ट्रीम स्टेज चेंज चुनें।
हम ईवेंट पैटर्न को वैसे ही छोड़ सकते हैं, या हम पैटर्न संपादित करें पर क्लिक करके और इसे निम्न जैसा दिखने के लिए संशोधित करके इस नियम को केवल स्ट्रीम प्रारंभ ईवेंट तक सीमित कर सकते हैं:
{ "source": ["aws.ivs"], "detail-type": ["IVS Stream State Change"], "detail": { "event_name": ["Stream Start"] } }
यह सुनिश्चित करने के लिए टेस्ट पैटर्न पर क्लिक करें कि इवेंट पैटर्न ऊपर दिए गए सैंपल इवेंट से मेल खाता है, और फिर नेक्स्ट पर क्लिक करें।
अगले चरण में, लक्ष्य 1 के अंतर्गत, AWS सेवा चुनें। एक लक्ष्य निर्धारित करें के तहत, लैम्ब्डा फ़ंक्शन चुनें, फिर उस लैम्ब्डा फ़ंक्शन को ढूंढें और चुनें जिसे हमने पहले बनाया था।
अगला क्लिक करें, वांछित टैग दर्ज करें, फिर समीक्षा करें और नियम बनाएं।
हम अपने नियम का परीक्षण करने के लिए पूरी तरह तैयार हैं। ऐसा करने के लिए, हमें बस Amazon IVS चैनल पर प्रसारण शुरू करना होगा। एक बार जब हम कर लेते हैं, तो हमारा नियम ट्रिगर हो जाएगा, और हमारा लैम्ब्डा फ़ंक्शन शुरू हो जाएगा। मेरे मामले में, इसका परिणाम मेरे मोबाइल डिवाइस पर एक अच्छी पुश सूचना है।
इस पोस्ट में, हमने पुश सूचनाएँ भेजने के लिए AWS लैम्ब्डा फ़ंक्शन बनाया और Amazon IVS लाइव स्ट्रीम शुरू होने पर उस फ़ंक्शन को लागू करने के लिए Amazon EventBridge नियम बनाया। आपके कार्य में वर्तमान में प्रसारित होने वाले चैनल के आधार पर ग्राहकों को देखने के लिए संभवतः कुछ अतिरिक्त तर्क शामिल होंगे, जो आप ईवेंट विवरण में resources
कुंजी में निहित ARN के आधार पर कर सकते हैं। अधिक जानने के लिए, दस्तावेज़ देखें।