[amazon-web-services] एडब्ल्यूएस लैम्ब्डा अनुसूचित कार्य


Answers

इस पोस्ट के समय के बाद से, एक और समाधान बढ़ गया है: अविश्वसनीय टाउन क्लॉक (यूटीसी) के साथ आवर्ती आवर्ती एडब्ल्यूएस लैम्ब्डा इनवोकेशन जिसमें लेखक एसएनएस विषय अविश्वसनीय टाउन क्लॉक की सदस्यता लेता है। मैंने न तो एसडब्ल्यूएफ और न ही एसएनएस का इस्तेमाल किया है, लेकिन ऐसा लगता है कि एसएनएस समाधान सरल है। लेख से यहां एक अंश दिया गया है

अविश्वसनीय टाउन क्लॉक (यूटीसी)

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

आप प्रत्येक पंद्रह मिनट में अपना कोड चलाने के लिए चीम विशेषताओं का उपयोग कर सकते हैं, या केवल एक घंटे में अपना कोड चला सकते हैं (उदाहरण के लिए, जब मिनट == "00") या दिन में एक बार (उदाहरण के लिए, जब घंटा == "00" और मिनट = = "00") या अंतराल की किसी भी अन्य श्रृंखला।

आप भविष्य में एक निश्चित समय पर केवल एक बार चलाने के लिए एक फ़ंक्शन की सदस्यता ले सकते हैं: फ़ंक्शन को सभी आमंत्रणों को तब तक अनदेखा कर दें जब तक वह चाहें। जब यह समय होता है, तो यह अपना काम कर सकता है, फिर स्वयं को एसएनएस विषय से सदस्यता छोड़ सकता है।

अविश्वसनीय टाउन क्लॉक में अपना कोड कनेक्ट करना तेज़ और आसान है। कोई आवेदन प्रक्रिया या खाता निर्माण की आवश्यकता नहीं है

Question

अमेज़ॅन ने एडब्ल्यूएस लैम्ब्डा ( http://aws.amazon.com/lambda/ ) की घोषणा की।

उत्पाद विवरण में शामिल हैं:

निर्धारित कार्य

एडब्ल्यूएस लैम्ब्डा कार्यों को बाहरी घटना टाइमर द्वारा ट्रिगर किया जा सकता है, इसलिए नियमित रूप से निर्धारित रखरखाव के समय या गैर-चरम घंटों के दौरान कार्य चलाया जा सकता है। उदाहरण के लिए, आप गैर-व्यस्त घंटों के दौरान रात के आर्काइव क्लीनअप करने के लिए एडब्ल्यूएस लैम्ब्डा फ़ंक्शन को ट्रिगर कर सकते हैं।

जब मैंने इसे पढ़ा, तो मुझे समझ में आया कि आखिर में "cron-like" कार्यों को करने का एक तरीका हो सकता है। मैं 5 पीएम पर हर रोज एक विशिष्ट क्वेरी चलाने के लिए कहता हूं।

हालांकि मुझे दस्तावेज़ में कहीं भी यह नहीं मिला है। वे केवल प्रोग्रामिक घटनाओं, या अन्य एडब्ल्यूएस सेवाओं की घटनाओं पर ट्रिगर्स का जिक्र करते हैं।

क्या मैंने गलत समझा? या कोई मुझे दस्तावेज़ीकरण के लिए इंगित कर सकते हैं?




आप इसे क्लाउडवॉच घटनाओं के साथ भी शेड्यूल कर सकते हैं। नियम बनाएं -> लक्ष्य संलग्न करें (लैम्ब्डा) और अपने नियम पर क्रॉन / रेट वार शेड्यूल सेट करें।




वेब-कंसोल तरीका बहुत सरल है। बस लैम्ब्डा के लिए CloudWatch नियम बनाएं और इसे लैम्ब्डा के Triggers टैब में जोड़ें।

उन लोगों के लिए जिन्हें aws cli साथ स्वचालित करने की जरूरत है, हम कर सकते हैं

  1. समारोह बनाएं
  2. नियम बनाओ,
  3. अनुमति दें,
  4. लिंक नियम और समारोह

कार्य बनाएं

aws lambda create-function --function-name ${FUNCTION-NAME} \
--runtime java8 \
--role 'arn:aws:iam::${Account}:role/${ROLE}' \
--handler org.yourCompany.LambdaApp \
--code '{"S3Bucket":"yourBucket", "S3Key": "RC/yourapp.jar"}' \
--description 'check hive connection' \
--timeout 180 \
--memory-size 384 \
--publish \
--vpc-config '{"SubnetIds": ["subnet-1d2e3435", "subnet-0df4547a"], "SecurityGroupIds": ["sg-cb17b1ae", "sg-0e7ae277"]}' \
--environment Variables={springEnv=dev}

नियम बनाएं

## create
aws events put-rule --name ${ruleName} \
--schedule-expression 'rate(5 minutes)' \
--state ENABLED \
--description 'check hive connection'

# grant permission to the Rule to allow it to trigger the function
aws lambda add-permission --function-name ${functionName} \
--statement-id 123 \
--action 'lambda:InvokeFunction' \
--principal events.amazonaws.com \
--source-arn arn:aws:events:us-east-1:acc:rule/${ruleName}

# link rule and function
aws events put-targets --rule ${ruleName} \
--targets '[{"Id":"1", "Arn":"arn:aws:lambda:us-east-1:acc:function:RC-checkhive"}]'



यहां बताया गया है कि मैं इसे कैसे करता हूं:

  • Lambda बनाएँ जो:

  • क्लाउडवॉच अलार्म के लिए: ApproximateNumberOfMessagesVisible> 0 मिनट के लिए 0 बनाएं

  • अलार्म के लिए एसएनएस विषय सदस्यता लें
  • एसएनएस विषय के लिए Lambda सदस्यता लें

अब आपके पास लगभग 15 मिनट के रिज़ॉल्यूशन वाला टाइमर है।

फिर अन्य लैम्ब्डा कार्यों को एसएनएस विषय के लिए सब्सक्राइब किया जाता है और हर 15 मिनट में बुलाया जाता है।




Related