AWS लैम्ब्डा S3 इवेंट और SQS संदेशों सहित विभिन्न स्रोतों से ट्रिगरिंग फ़ंक्शन का समर्थन करता है। हालाँकि, जब आपको अपने लैम्ब्डा फ़ंक्शन को कई ट्रिगर्स पर प्रतिक्रिया देने की आवश्यकता होती है, तो एक दुविधा उत्पन्न होती है। &&&]
func main() { लैम्ब्डा.स्टार्ट(प्रोसेसइनकमिंगS3इवेंट्स) लैम्ब्डा.स्टार्ट(प्रोसेसइनकमिंगइवेंट्स) }यह विधि विफल हो गई क्योंकि पहला ट्रिगर (ProcessIncomingS3Events) हमेशा सभी घटनाओं को संभालेगा।दूसरा दृष्टिकोण:
func main() {
lambda.Start(ProcessIncomingS3Events)
lambda.Start(ProcessIncomingEvents)
}
func main( ) {
लैम्ब्डा.स्टार्ट(प्रोसेसइनकमिंगइवेंट्स)
}इस परिदृश्य में, लैम्ब्डा ईवेंट प्रकार की पहचान नहीं कर सका, जिसके परिणामस्वरूप सभी ट्रिगर्स के लिए "ईवेंट प्रकार नहीं मिल सका" त्रुटियां हुईं।मल्टी-इवेंट हैंडलर कार्यान्वयन
इन सीमाओं को पार करने के लिए, आप AWS हैंडलर इंटरफ़ेस का उपयोग करके एक मल्टी-इवेंट हैंडलर लागू कर सकते हैं। यहां एक नमूना कार्यान्वयन है:func main() {
lambda.Start(ProcessIncomingS3Events)
lambda.Start(ProcessIncomingEvents)
}
प्रकार हैंडलर संरचना {
// वैश्विक चर या संदर्भ जानकारी को परिभाषित करें
}
func (h हैंडलर) Invoke(ctx context.Context, डेटा []बाइट) ([]बाइट, त्रुटि) {
// विभिन्न घटना प्रकारों के आधार पर डेटा को अनमर्शल करें
var apiGatewayEvent इवेंट.APIGatewayProxyRequest
यदि त्रुटि := json.Unmarshal(data, &apiGatewayEvent); त्रुटि == शून्य {
// एपीआई गेटवे इवेंट को संभालें
}
var snsEvent इवेंट.SNSEvent
यदि त्रुटि := json.Unmarshal(data, &snsEvent); त्रुटि == शून्य {
// एसएनएस इवेंट को संभालें
}
वापसी शून्य, शून्य
}
func मुख्य() {
लैम्ब्डा.स्टार्टहैंडलर(हैंडलर{})
}इस दृष्टिकोण के साथ, आपका लैम्ब्डा फ़ंक्शन विभिन्न AWS घटनाओं को सुन सकता है और तदनुसार उन्हें संभाल सकता है।विचारइस पद्धति का उपयोग करते समय लचीलापन प्रदान करता है, याद रखें कि लैम्ब्डा फ़ंक्शन हैं किसी एक प्रकार की घटना को प्रभावी ढंग से संभालने के लिए डिज़ाइन किया गया। अनेक ईवेंट प्रकारों को मिलाने से जटिलताएँ और प्रदर्शन समस्याएँ उत्पन्न हो सकती हैं। अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3