आप एक क्लाउड फ़ंक्शन अलार्म को लैम्ब्डा फ़ंक्शन आमंत्रण से कैसे कनेक्ट करते हैं?क्लाउडवॉच अलार्म को लैम्ब्डा फ़ंक्शन से कनेक्ट करने के लिए कैसे करें
मैं ईएलबी को क्लाउड घड़ी अलार्म प्रोग्रामेटिक रूप से जोड़ रहा हूं जिसे हम एडब्ल्यूएस क्लाउडफॉर्मेशन टेम्पलेट्स के माध्यम से क्लाउड गठन स्टैक के हिस्से के रूप में बनाते हैं। मैं अलर्ट्स को एक लैम्ब्डा फ़ंक्शन में भेजना चाहता हूं जो संदेश को स्लैक पर पोस्ट करेगा। हालांकि अलर्ट काम करता है, और एसएनएस कॉन्फ़िगरेशन मेरे लिए सही लगता है, लैम्ब्डा फ़ंक्शन कभी नहीं बुलाया जाता है।
लैम्ब्डा समारोह इन उदाहरणों इस प्रकार है:
http://inopinatus.org/2015/07/13/hook-aws-notifications-into-slack-with-a-lambda-function/
लैम्ब्डा समारोह काम करता है, और मैं इसे एडब्ल्यूएस सांत्वना संदेश सुस्त पर पोस्ट किए गए, जिसके परिणामस्वरूप के माध्यम से डेटा का परीक्षण भेज सकते हैं।
लोड संतुलन एक सही दिखने बादल घड़ी अलार्म के साथ बनाई गई है:
अलार्म सही एसएनएस विषय सूचना भेजने के लिए कॉन्फ़िगर किया गया है:
उस विषय के लिए एक एसएनएस सदस्यता है, लैम्ब्डा फ़ंक्शन के साथ यह एंडपॉइंट है:
अलार्म ट्रिगर कर रहे हैं और संदेश सही विषय के लिए भेजा जब अलार्म आग:
लेकिन लैम्ब्डा समारोह लागू कभी नहीं किया गया है:
हालांकि , अगर मैं लैम्बडा फ़ंक्शन पर मैन्युअल रूप से SNS विषय को "ईवेंट स्रोत" के रूप में जोड़ता हूं, तो यह है अलार्म आग लगने पर और स्लेक संदेश पोस्ट किए जाने पर आह्वान किया जाता है।
एम आई गलतफहमी एक लैम्ब्डा कार्य करने के लिए एक बादल घड़ी अलार्म कनेक्ट करने के लिए कैसे? या क्या मुझे कोई छोटा सा विवरण याद आ रहा है?
यदि यह दृष्टिकोण काम नहीं कर सकता है, और क्लाउड घड़ी अलार्म में लैम्ब्डा फ़ंक्शन को जोड़ने का एकमात्र तरीका एसएनएस विषय को "ईवेंट स्रोत" के रूप में जोड़ना है, तो एडब्ल्यूएस क्लाउडफॉर्मेशन टेम्पलेट्स के माध्यम से ऐसा करने का उचित तरीका क्या है? मुझे एक मौजूदा संसाधन को संशोधित करने का एक स्पष्ट तरीका नहीं दिखता है जैसे कि एक निश्चित लैम्ब्डा फ़ंक्शन।
"GenericSlackAlertSNSTopic" : {
"Type" : "AWS::SNS::Topic",
"Properties" : {
"Subscription" : [ {
"Endpoint" : "arn:aws:lambda:us-east-1:[...]:function:snsToSlack",
"Protocol" : "lambda"
} ]
}
},
"ELBNoTrafficAlarm": {
"Type": "AWS::CloudWatch::Alarm",
"Properties": {
"Namespace" : "AWS/ELB",
"AlarmDescription": "Alarm for no apparent traffic on an ELB.",
"AlarmActions": [{
"Ref": "GenericSlackAlertSNSTopic"
}],
"InsufficientDataActions": [{
"Ref": "GenericSlackAlertSNSTopic"
}],
"MetricName": "RequestCount",
"Statistic": "Sum",
"Dimensions" : [ {
"Name" : "LoadBalancerName",
"Value" : { "Ref" : "ElasticLoadBalancer" }
} ],
"Period": "60",
"EvaluationPeriods": "3",
"Threshold" : "10",
"ComparisonOperator": "LessThanOrEqualToThreshold"
}
}
धन्यवाद:
यहाँ मेरी CloudFormation खाका है!
-neil
मैं इसे आज अपने आप स्थापित कर रहा था, इसलिए यह पुष्टि कर सकता है कि यह काम करता है। मैं नहीं देखता कि आपने जो किया है वह नहीं है। –
धन्यवाद। यह क्लाउडफॉर्मेशन सृजन हिचकी नहीं है, मैंने एक स्टैक ~ 10 गुना बढ़ाया है, और नतीजा वही है (यानी, कोई लैम्ब्डा फ़ंक्शन आमंत्रण नहीं।) –
कंसोल में क्लाउडफॉर्मेशन में जाएं और सत्यापित करें कि एसएनएस विषय स्थापित है। अगर कोई त्रुटि हुई तो उसे वहां दिखाना चाहिए। इसके अलावा यह मेरे लिए सही लग रहा है ... –