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




5 Answers

अनुसूचित घटनाओं के लिए मूल समर्थन 8 अक्टूबर, 2015 को जोड़ा गया:

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

अनुसूचित घटना को एक नए लैम्ब्डा में जोड़ें

सृजन के 'ट्रिगर्स कॉन्फ़िगर करें' चरण पर नेविगेट करें, और 'क्लाउडवॉच इवेंट - शेड्यूल' ट्रिगर निर्दिष्ट करें। नीचे उदाहरण कॉन्फ़िगरेशन:

अनुसूचित घटना को मौजूदा लैम्ब्डा में जोड़ें

अपने लैम्ब्डा के 'ट्रिगर्स' टैब पर नेविगेट करें, 'ट्रिगर जोड़ें' का चयन करें, और 'क्लाउडवॉच इवेंट - शेड्यूल' ट्रिगर निर्दिष्ट करें। उदाहरण स्क्रीनशॉट जहां मेरे पास एक एसएनएस ट्रिगर वाला मौजूदा लैम्ब्डा है:

एक बार लोड होने के बाद, इस ट्रिगर को कॉन्फ़िगर करने के लिए यूआई उपरोक्त में स्क्रीनशॉट के समान है "ऊपर दिए गए नए लैम्ब्डा में अनुसूचित ईवेंट जोड़ें" अनुभाग।

विचार-विमर्श

आपके उदाहरण के मामले के लिए, आप rate() बजाय cron() का उपयोग करना चाहेंगे। लैम्ब्डा में क्रोन अभिव्यक्तियों को सभी क्षेत्रों की आवश्यकता होती है और यूटीसी में व्यक्त की जाती है। तो हर दिन 5 बजे (यूटीसी) पर एक समारोह चलाने के लिए, निम्न क्रॉन अभिव्यक्ति का उपयोग करें:

cron(0 17 * * ? *)

आगे संसाधन

टिप्पणियाँ

  • इस सुविधा का नाम "अनुसूचित घटना" से "क्लाउडवॉच घटनाक्रम - अनुसूची" में बदल दिया गया है क्योंकि इस सुविधा को पहली बार रिलीज़ किया गया था।
  • इस सुविधा के रिलीज से पहले, इस मुद्दे के लिए अनुशंसित समाधान ( 42min 50secs पर "एडब्ल्यूएस लैम्ब्डा के साथ शुरू करना" ) टाइमर बनाने के लिए या बाहरी एप्लिकेशन के साथ टाइमर बनाने के लिए एसडब्ल्यूएफ का उपयोग करना था।
  • निर्धारित कार्यक्रम ब्लॉग पोस्ट आने के बाद से लैम्ब्डा यूआई को ओवरहाल कर दिया गया है, और स्क्रीनशॉट अब सटीक नहीं हैं। नवीनतम संशोधन के लिए 3/10/2017 से ऊपर मेरे अपडेट किए गए स्क्रीनशॉट देखें।

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

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

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

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

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

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

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




नया समाधान: लैम्ब्डा अनुसूचित नौकरियां

वर्नर वोगेल ने आज रात (10/08) की घोषणा की है: आविष्कार करें कि एडब्ल्यूएस लैम्ब्डा के पास अब अपना शेड्यूलर है।

2015-10-08 को एडब्ल्यूएस लैम्ब्डा रिलीज नोट से :

आप AWS Lambda कंसोल का उपयोग करके नियमित, निर्धारित आधार पर अपने कोड को आमंत्रित करने के लिए AWS Lambda भी सेट कर सकते हैं। आप एक निश्चित दर (घंटे, दिन, या सप्ताह की संख्या) निर्दिष्ट कर सकते हैं या आप एक क्रॉन अभिव्यक्ति निर्दिष्ट कर सकते हैं। उदाहरण के लिए, वॉकथ्रू 5 देखें : अनुसूचित घटनाओं (पायथन) को संसाधित करने के लिए लैम्ब्डा फ़ंक्शंस का उपयोग करना

पुराना समाधान: एडब्ल्यूएस डेटा पाइपलाइन के साथ शेड्यूलिंग

आप किसी दिए गए अवधि के साथ कार्य schedule करने के लिए एडब्ल्यूएस डेटा पाइपलाइन का उपयोग कर सकते हैं। जब आप अपनी पाइपलाइन को ShellCommandActivity साथ कॉन्फ़िगर करते हैं तो कार्रवाई कोई भी आदेश हो ShellCommandActivity

उदाहरण के लिए आप एक एडब्ल्यूएस सीएलआई कमांड को चला सकते हैं:

  • एसक्यूएस को एक संदेश दें
  • या सीधे एक Lambda समारोह का invoke (देखें देखें)

आप सीधे एडब्ल्यूएस कंसोल (जैसे एडब्ल्यूएस सीएलआई कमांड के साथ) के भीतर आसानी से एडब्ल्यूएस डेटा पाइपलाइन निर्धारित कार्य बना सकते हैं:

आप अपने शेड्यूलिंग को define करने के लिए एपीआई का भी उपयोग कर सकते हैं:

{
 "pipelineId": "df-0937003356ZJEXAMPLE",
 "pipelineObjects": [
    {
      "id": "Schedule",
      "name": "Schedule",
      "fields": [
        { "key": "startDateTime", "stringValue": "2012-12-12T00:00:00" }, 
        { "key": "type", "stringValue": "Schedule" }, 
        { "key": "period", "stringValue": "1 hour" }, 
        { "key": "endDateTime", "stringValue": "2012-12-21T18:00:00"  }
       ]
     }, {
      "id": "DoSomething",
      "name": "DoSomething",
      "fields": [
        { "key": "type", "stringValue": "ShellCommandActivity" },
        { "key": "command", "stringValue": "echo hello" },
        { "key": "schedule", "refValue": "Schedule" }
      ]
    }
  ]
}

Limits : न्यूनतम शेड्यूलिंग अंतराल 15 मिनट है।
Pricing : लगभग $ 1.00 प्रति माह।




चूंकि अब HTTP पर लैम्ब्डा फ़ंक्शंस को ट्रिगर करना संभव है (उदाहरण के लिए जीईटी या कर्ल का उपयोग करना) एक आसान समाधान एक प्रबंधित सीआरओएन जैसे easycron का उपयोग करना है: https://www.easycron.com/ अपने लैम्ब्डा फ़ंक्शन को चलाने में ट्रिगर करने के लिए।

हमारे पास एक ही समस्या थी और पाइथन में Google App Engine पर एक क्रॉन सेवा चलाने के बाद समाप्त हो गया क्योंकि यह सीआरओएन नौकरी में अधिक लचीलापन और जटिलता के लिए अनुमति देता है।




लैम्ब्डा फ़ंक्शन बनाने के दौरान ट्रिगर बनाएं "क्लाउडवॉच ईवेंट - शेड्यूल"

अब आप या तो अनुसूची अभिव्यक्ति में एडब्ल्यूएस प्रीसेट का उपयोग कर सकते हैं जैसे दर = 15 मिनट या आप क्रॉन अभिव्यक्ति का उपयोग कर सकते हैं।

आपकी आवश्यकता के लिए क्रोन अनुसूची "0 0 17 1/1 * * * है"




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

एक बार जब आप दक्ष इंजन स्थापित करते हैं, तो आप क्रॉन अभिव्यक्ति का उपयोग करके फ़ंक्शन शेड्यूल कर सकते हैं:

जावा-jar दिक्शा-क्लाइंट-0.0.1.jar -lcfg cf1 -cj "jobName | functionName | संदर्भ | 0 0-59 * * * * | 10"

इस नौकरी में नौकरी 10 मिनट के लिए हर मिनट चलाएगी। एडब्ल्यूएस एसडब्ल्यूएफ खुद ही कार्य ट्रिगर करेगा।

विवरण: https://github.com/milindparikh/diksha

अस्वीकरण: मैं परियोजना में योगदानकर्ता हूं।




Related