मैं एसक्यूएस देरी कतार से अपने लैम्ब्डा फ़ंक्शन को ट्रिगर करने की कोशिश कर रहा हूं और यह लैम्ब्डा को ट्रिगर कर रहा है लेकिन कतार में कोई संदेश नहीं है। यहां तक ​​​​कि जब मैं एडब्ल्यूएस कंसोल पर जांच करता हूं तो एक संदेश देरी होती है और जब वह देरी का समय खत्म हो जाता है। यह मेरे लैम्ब्डा फ़ंक्शन को ट्रिगर करता है लेकिन जब मेरा लैम्ब्डा संदेशों की सूची प्राप्त करने का प्रयास करता है तो यह खाली सूची दिखाता है। दूसरी बात यह है कि जब मैं लैम्ब्डा ट्रिगर को हटा देता हूं, उसके बाद जब भी मैं कतार में संदेश भेजता हूं तो यह देरी के समय के बाद उपलब्ध संदेश दिखाता है। तो यह लैम्ब्डा को ट्रिगर जोड़ने के बिना अपेक्षित काम कर रहा है लेकिन जब मैं ट्रिगर जोड़ता हूं तो मेरे लैम्ब्डा को प्रक्रिया के लिए कोई संदेश नहीं मिल रहा है।

मैंने विभिन्न चीजों की कोशिश की है लेकिन कुछ भी काम नहीं आया। मेरी डिफ़ॉल्ट दृश्यता समयबाह्य: 30 सेकंड और संदेश प्राप्त करें प्रतीक्षा समय: 0 सेकंड और वितरण विलंब: 10 सेकंड।

संदेशों को वर्ग से लाने के लिए नीचे दिए गए कोड का उपयोग करना और यह हमेशा खाली सूची लौटाता है:

final ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(SQS_URL);
        final List<Message> messages = sqs.receiveMessage(receiveMessageRequest).getMessages();

मैं एडब्ल्यूएस के लिए नया हूं और नहीं जानता कि क्या करना है, इस मुद्दे के कारण गतिरोध में फंस गया है। कृपया मदद कीजिए।

0
Sneha 12 सितंबर 2019, 13:35

1 उत्तर

सबसे बढ़िया उत्तर

यदि आपने AWS लैम्ब्डा फ़ंक्शन को ट्रिगर करने के लिए Amazon SQS क्यू को कॉन्फ़िगर किया है, तो फ़ंक्शन को ReceiveMessage() कॉल नहीं करना चाहिए।

इसके बजाय, संदेश स्वचालित रूप से SQS कतार से लिया जाता है और event पैरामीटर के माध्यम से लैम्ब्डा फ़ंक्शन को पास कर दिया जाता है।

नमूना कोड के लिए, देखें: नमूना Amazon SQS फंक्शन कोड - AWS लैम्ब्डा

लैम्ब्डा फ़ंक्शन को फ़ंक्शन को दिए गए संदेशों के माध्यम से लूप करना चाहिए। जब फ़ंक्शन समाप्त हो जाता है, तो संदेश स्वचालित रूप से हटा दिए जाएंगे।

6
John Rotenstein 12 सितंबर 2019, 11:12