कोर्स
हर जटिल सिस्टम कई उप-प्रणालियों के समन्वय का परिणाम होता है। ऐसे सिस्टम का निर्माण और रखरखाव एक आम चुनौती बनी रहती है, खासकर जब क्लाउड इन्फ्रास्ट्रक्चर के साथ काम किया जा रहा हो।
सौभाग्य से, किसी भी जटिलता स्तर पर वर्कफ़्लो के ऑर्केस्ट्रेशन को सरल बनाने के लिए अनेक टूल विकसित किए गए हैं। इन टूल्स में, AWS Step Functions अपनी उपयोगिता और अनेक फायदों के कारण अलग दिखाई देता है।
यह लेख AWS क्लाउड के भीतर वर्कफ़्लो को ऑर्केस्ट्रेट करने के लिए Step Functions का उपयोग कैसे करें, इस पर केंद्रित है। यह शुरुआत में बताता है कि स्टेप फ़ंक्शंस क्या हैं, उनके लाभ और प्रमुख विशेषताएँ क्या हैं।
इसके बाद, यह Step Function के साथ शुरुआत करने के चरणों से मार्गदर्शन करता है — AWS वातावरण सेटअप करने से लेकर इंटरफ़ेस की पड़ताल तक। इसी आधार पर, यह एक वास्तविक दुनिया के वर्कफ़्लो को चरण-दर-चरण बनाना और परिनियोजित करना दिखाता है।
AWS Step Functions क्या हैं?
AWS Step Functions एक सर्वरलेस ऑर्केस्ट्रेशन सेवा है जो विज़ुअल वर्कफ़्लो बनाने को सरल बनाती है, जिससे AWS Lambda फंक्शंस और अन्य AWS संसाधनों का निर्बाध समन्वय संभव होता है।
इसकी इंटेग्रेशन क्षमताएँ व्यापक हैं, जिनमें Amazon EC2, Amazon ECS, ऑन-प्रिमाइसेस सर्वर, Amazon API Gateway, और Amazon SQS क्व्यूज़ आदि के साथ कनेक्शन का समर्थन शामिल है। इससे सुनिश्चित होता है कि वर्कफ़्लो व्यापक हों और AWS सेवाओं के विस्तृत इकोसिस्टम के साथ इंटरैक्ट कर सकें।
AWS Step Functions की बहुमुखी प्रतिभा इसे व्यापक अनुप्रयोगों के लिए उपयुक्त बनाती है। चाहे ऑर्डर पूर्ति का प्रबंधन करना हो, डेटा प्रोसेसिंग करनी हो, वेब एप्लिकेशन चलाने हों, या कार्यों के किसी जटिल अनुक्रम का ऑर्केस्ट्रेशन करना हो — Step Functions वर्कफ़्लो ऑटोमेशन और प्रबंधन के लिए एक सुदृढ़ समाधान प्रदान करता है।
प्रमुख विशेषताएँ और लाभ
AWS Step Functions के तकनीकी पहलुओं में जाने से पहले, इसकी मुख्य विशेषताओं और फायदों का अन्वेषण करते हैं।
प्रमुख विशेषताएँ
Step Functions वर्कफ़्लो बनाने और प्रबंधन को सुगम बनाने के लिए कई विशेषताएँ प्रदान करता है; नीचे प्रमुख विशेषताएँ दी गई हैं:
- HTTPS एंडपॉइंट्स इंटेग्रेशन: यह वर्कफ़्लो को किसी भी ऐसे वेब सर्विस को इनवोक करने देता है जो HTTPS सपोर्ट करता हो, ताकि विभिन्न वेब API को उपयोगकर्ता प्रक्रियाओं में जोड़ा जा सके।
- डिस्ट्रीब्यूटेड कंपोनेंट कोऑर्डिनेशन: यह फीचर वितरित सिस्टम के घटकों का समन्वय संभव बनाता है, जो जटिल, मल्टी-सर्विस एप्लिकेशनों के लिए महत्वपूर्ण है।
- बिल्ट-इन स्टेट मैनेजमेंट: प्रत्येक वर्कफ़्लो निष्पादन की प्रगति पर बारीकी से नज़र रखते हुए, यह क्षमता निष्पादन के दौरान उपयोगकर्ताओं के अनुप्रयोगों की स्टेट को संरक्षित करती है और वर्कफ़्लो स्टेप्स के बीच स्थानांतरित होने वाले डेटा का प्रबंधन करती है।
- मानवीय अनुमोदन: किसी भी ऑटोमेशन में मनुष्यों की भागीदारी महत्वपूर्ण है। यह फीचर आवश्यक होने पर मैनुअल अनुमोदनों के लिए स्वचालित वर्कफ़्लो में मानव हस्तक्षेप शामिल करने का तंत्र प्रदान करता है।
लाभ
AWS Step Functions की प्रमुख विशेषताएँ डेवलपर्स और संगठनों को परिचालन और विकास वर्कफ़्लो में सुधार के लिए कई लाभ प्रदान करती हैं।
|
डेवलपर्स के लिए |
संगठनों के लिए |
|
|
वास्तविक उदाहरण और केस स्टडी
उपरोक्त विशेषताओं और फायदों के आधार पर, इसमें कोई संदेह नहीं कि Step Functions विभिन्न क्षेत्रों में महत्वपूर्ण भूमिका निभा सकता है, जिससे व्यवसाय अपने वर्कफ़्लो को डिज़ाइन, स्वचालित और कुशलतापूर्वक स्केल कर सकें।
यह अनुभाग इस बात के उदाहरणों की पड़ताल करता है कि किस प्रकार अलग-अलग उद्योग AWS Step Functions का उपयोग करके अधिक प्रतिस्पर्धी, नवाचारी और कुशल बनते हैं।
माइक्रोसर्विस कोऑर्डिनेशन
माइक्रोसर्विस से बनी आर्किटेक्चर वाले संगठन अक्सर इन सेवाओं के बीच अंतःक्रियाओं को प्रबंधित करने के लिए AWS Step Functions का लाभ उठाते हैं।
उदाहरण के लिए, कोई रिटेल कंपनी Step Functions को लागू कर सकती है ताकि वह उपयोगकर्ता प्रमाणीकरण, स्टॉक प्रबंधन, भुगतान प्रसंस्करण, और ऑर्डर डिस्पैचिंग जैसे चरणों का ऑर्केस्ट्रेशन कर सके, जिससे एक सुसंगत शॉपिंग अनुभव सुनिश्चित हो।
सुरक्षा और आईटी संचालन
AWS Step Functions का उपयोग सुरक्षा जाँच, सिस्टम अपडेट, और अनुपालन सत्यापन जैसे दोहराए जाने वाले कार्यों को स्वचालित करने के लिए किया जा सकता है।
उदाहरण के लिए, आईटी सुरक्षा में, Step Functions का उपयोग इन्सिडेंट रेस्पॉन्स वर्कफ़्लो डिज़ाइन करने में किया जा सकता है, जिससे प्रारंभिक अलर्ट से लेकर समस्या समाधान तक प्रत्येक चरण का व्यवस्थित प्रबंधन करके मानवीय त्रुटि और प्रतिक्रिया समय कम होता है।
डेटा वर्कफ़्लो और ETL प्रक्रियाएँ
डेटा-गहन उद्यमों के लिए, AWS Step Functions डेटा प्रोसेसिंग और ETL कार्यों का ऑर्केस्ट्रेशन कर सकता है। इसमें अनेक स्रोतों से डेटा निकालना, उसे एक समान प्रारूप में परिवर्तित करना, और उसे विश्लेषणात्मक प्लेटफ़ॉर्म या डेटा लेक्स में लोड करना शामिल हो सकता है।
उदाहरण के लिए, कोई एनालिटिक्स फर्म Step Functions को अपने डेटा पाइपलाइन को स्वचालित करने के लिए लागू कर सकती है, ताकि रणनीतिक निर्णय लेने के लिए डेटा का कुशलतापूर्वक प्रबंधन सुनिश्चित हो।
मशीन लर्निंग ऑपरेशंस
Step Functions मशीन लर्निंग के परिचालन पहलुओं में भी फायदेमंद है, जैसे डेटा तैयारी, मॉडल प्रशिक्षण, मूल्यांकन और परिनियोजन।
कोई हेल्थकेयर टेक्नोलॉजी कंपनी अपने डायग्नोस्टिक एल्गोरिदम के आवधिक रिट्रेनिंग के लिए पाइपलाइन का प्रबंधन करने हेतु Step Functions का उपयोग कर सकती है, ताकि नए डेटा के उपलब्ध होने पर उसके मॉडलों का प्रदर्शन बना रहे।
मीडिया प्रोसेसिंग पाइपलाइंस
मीडिया और मनोरंजन क्षेत्र में, AWS Step Functions का उपयोग जटिल मीडिया प्रोसेसिंग वर्कफ़्लो — जैसे वीडियो एन्कोडिंग, इमेज प्रोसेसिंग, और कंटेंट विश्लेषण — का ऑर्केस्ट्रेशन करने के लिए किया जा सकता है।
कोई मीडिया कंपनी Step Functions लागू कर सकती है ताकि नया कंटेंट अपलोड होते ही स्वचालित रूप से फ़ॉर्मैट कन्वर्ज़न, थंबनेल एक्सट्रैक्शन, और मेटाडेटा एनरिचमेंट ट्रिगर हो जाए, और तभी उसे प्रकाशित किया जाए।
AWS Step Functions के साथ शुरुआत
इस लेख के आगे के हिस्सों में Step Functions को अन्य AWS सेवाओं के साथ संयोजित करना शामिल है। इसलिए उन्नत अवधारणाओं पर जाने से पहले Step Functions की बुनियादी बातों को समझना आवश्यक है।
इस अनुभाग का उद्देश्य AWS Step Functions के साथ शुरुआत करने में सहायता करना है — बिल्डिंग ब्लॉक्स समझने से लेकर AWS Step Functions इंटरफ़ेस नेविगेट करने तक।
Step Functions के बिल्डिंग ब्लॉक्स
हर सिस्टम या मॉड्यूल कई उपघटकों का संयोजन होता है, और Step Functions भी ऐसा ही है। Step Functions निम्नलिखित ब्लॉक्स पर आधारित है: (1) स्टेट मशीन, और (2) टास्क्स।
आइए इन अवधारणाओं को एक उदाहरण के माध्यम से समझते हैं।
- स्टेट मशीन: ऐसा वर्कफ़्लो जो घटनाओं के क्रम, सशर्त लॉजिक, और टास्क निष्पादन के समग्र प्रवाह को परिभाषित करता है। संक्षेप में, स्टेट मशीन को एक वर्कफ़्लो के रूप में परिभाषित किया जा सकता है।
- टास्क्स: कोई ऐसा एक्शन जो विशिष्ट कार्य करता है। यह इनपुट लेता है और आउटपुट बनाता है। उदाहरण के लिए डेटाबेस क्वेरी करना, किसी API कॉल करना, या एक Lambda फ़ंक्शन इनवोक करना आदि।
AWS Step Functions का उपयोग करके डेकेयर पंजीकरण प्रक्रिया करने वाला एक उपयोग-मामला मान लें। Step Functions का लाभ उठाने की प्रक्रिया में जाने से पहले, समग्र चरणों को समझते हैं:
- पंजीकरण जानकारी एकत्र करें: प्रक्रिया का पहला चरण माता-पिता से पंजीकरण जानकारी एकत्र करना है। यह वेब फ़ॉर्म के माध्यम से किया जा सकता है, लेकिन हमारे उपयोग-मामले में हम JSON का उपयोग कर रहे हैं। सबमिट होने पर एक Lambda फ़ंक्शन ट्रिगर होता है, जो पंजीकरण जानकारी वर्कफ़्लो के अगले चरण को पास करता है।
- पंजीकरण जानकारी सत्यापित करें: अगला चरण एक Lambda फ़ंक्शन का उपयोग करना है जो पंजीकरण जानकारी सत्यापित करता है। यह जाँचता है कि सभी आवश्यक फ़ील्ड भरे गए हैं और बच्चे की आयु डेकेयर के लिए स्वीकार्य सीमा में है। यदि सत्यापन सफल होता है, तो वर्कफ़्लो अगले चरण में बढ़ता है। यदि नहीं, तो माता-पिता को एक त्रुटि संदेश लौटाया जाता है।
- उपलब्धता जाँचें: पंजीकरण जानकारी सत्यापित होने के बाद, एक अन्य Lambda फ़ंक्शन डेकेयर में सीटों की उपलब्धता जाँचता है। यदि उपलब्धता है, तो वर्कफ़्लो अगले चरण में बढ़ता है। यदि नहीं, तो माता-पिता को सूचित किया जाता है कि डेकेयर भर चुका है।
- पंजीकरण की पुष्टि करें: अंतिम चरण एक Lambda फ़ंक्शन है जो पंजीकरण की पुष्टि करता है और माता-पिता को पुष्टि संदेश भेजता है। इसमें आरंभ तिथि और शुल्क का विवरण शामिल होता है।
इस वर्कफ़्लो में चार मुख्य टास्क्स वाली एक स्टेट मशीन है, जो स्वयं स्पष्ट हैं।
checkInformationcheckAgeRangecheckSpotsAvailabilityconfirmRegistration
AWS Step functions का उपयोग करते हुए डेकेयर पंजीकरण वर्कफ़्लो
अपना पहला AWS Step Function बनाना
ऊपर के सेक्शंस ने अधिक सैद्धांतिक ज्ञान दिया, और यह भाग तकनीकी पहलुओं में उतरता है — Step Functions का उपयोग करने की पूर्वापेक्षाओं से लेकर एक एंड-टू-एंड वर्कफ़्लो लागू करने और उसे परिनियोजित करने तक।
Step Functions लागू करने की पूर्वापेक्षाएँ
उपयोग-मामले के विवरण में जाने से पहले, सफल कार्यान्वयन के लिए आवश्यक पूर्वापेक्षाओं पर नज़र डालते हैं:
- AWS खाता: AWS सेवाओं तक पहुँच के लिए आवश्यक, और इसे AWS वेबसाइट से बनाया जा सकता है।
- AWS सेवाओं का बुनियादी ज्ञान: इस उपयोग-मामले के दायरे के लिए AWS Lambda और Amazon Simple Notification Service (SNS) से परिचित होना आवश्यक है।
- JSON का ज्ञान: इनपुट और आउटपुट डेटा प्रारूप समझने के लिए JSON की बुनियादी समझ आवश्यक है।
- AWS IAM: AWS Identity and Access Management (IAM) की समझ आवश्यक है ताकि उपयोग में आ रहे Lambda फ़ंक्शंस के लिए सही अनुमतियाँ सेट की जा सकें।
- कोडिंग कौशल: Python में बुनियादी कोडिंग कौशल Lambda फ़ंक्शंस लिखने के लिए आवश्यक हैं।
AWS Step Functions इंटरफ़ेस नेविगेट करना
आइए Step Function इंटरफ़ेस की पड़ताल से शुरू करें। अपने AWS खाते में लॉग इन करने के बाद निम्नलिखित चार मुख्य चरणों पर विचार करके यह किया जा सकता है:
- ऊपर दिए गए सर्च बार में “Step Functions” कीवर्ड टाइप करें।
- परिणामों में से संबंधित आइकन चुनें।
- पहला स्टेप फ़ंक्शन बनाने के लिए “Get Started” आइकन पर क्लिक करें।
- अंत में, चूँकि हम अपनी स्वयं की स्टेट मशीन बनाना चाहते हैं, “Create your own” टैब चुनें।

Step Function इंटरफ़ेस तक पहुँचने के चार मुख्य चरण
चौथे चरण के बाद, हम “Design” टैब की मदद से स्टेट मशीन डिज़ाइन करना शुरू कर सकते हैं, जिसमें तीन मुख्य फ़ंक्शनैलिटीज़ हैं: “Actions”, “Flow”, और “Patterns।”

"Design" टैब के तीन मुख्य घटक
- Actions: ये वर्कफ़्लो के भीतर किए जा सकने वाले व्यक्तिगत ऑपरेशंस से मेल खाते हैं, और ये विशिष्ट AWS सेवाओं से संबंधित होते हैं, जैसे Lambda फ़ंक्शन इनवोक करना, SNS पर संदेश प्रकाशित करना, ECS पर कोई टास्क चलाना, या AWS Glue में कोई जॉब शुरू करना।
- Flow: यह स्टेट मशीन के निष्पादन पथ को निर्धारित करने वाले कंट्रोल-फ़्लो कॉन्स्ट्रक्ट्स का प्रतिनिधित्व करता है। जैसे ब्रांचिंग लॉजिक के लिए "Choice", समानांतर निष्पादन पथों के लिए "Parallel", किसी कलेक्शन पर इटरेट करने के लिए "Map", बिना ऑपरेशन या स्टेट डेटा समृद्ध करने के लिए "Pass", समय विलंब के लिए "Wait", सफलतापूर्वक वर्कफ़्लो समाप्त करने के लिए "success", और त्रुटि के कारण समाप्त करने के लिए "Fail" — ये सभी वर्कफ़्लो के फ़्लो कंट्रोल का हिस्सा हैं।
- Patterns: ये सामान्य वर्कफ़्लो परिदृश्यों के लिए पूर्व-परिभाषित टेम्प्लेट या सर्वोत्तम प्रक्रियाएँ हैं, जो जटिल स्टेट मशीन बनाना आसान बनाती हैं। पैटर्न्स में S3 ऑब्जेक्ट्स, JSON फ़ाइलों, CSV फ़ाइलों को संभालने के लिए डेटा प्रोसेसिंग टास्क शामिल हो सकते हैं, या असिंक्रोनस जॉब निष्पादन के ऑर्केस्ट्रेशन के लिए जॉब पोलर जैसे सामान्य-उद्देश्य पैटर्न।
वर्कफ़्लो बनाना
प्रारंभिक वर्कफ़्लो का उद्देश्य स्टेट मशीन के मुख्य घटकों का एक सामान्य अवलोकन प्रदान करना था। यह अनुभाग कार्यान्वयन प्रक्रिया की समीक्षा करता है।
इसके लिए हमें चार Lambda फ़ंक्शंस की आवश्यकता है, प्रत्येक एक विशिष्ट टास्क से संबंधित है।
निम्नलिखित सात चरण एक Lambda फ़ंक्शन बनाने के लिए सभी आवश्यक कदमों को दर्शाते हैं। निर्माण प्रक्रिया सभी चारों के लिए समान है; केवल इन फ़ंक्शंस की सामग्री अलग होगी।
लेख का पूरा कोड GitHub पेज पर उपलब्ध है। यद्यपि कोड समझना आसान है, बेहतर अनुभव के लिए पूरे लेख की सामग्री का अनुसरण करना अत्यंत अनुशंसित है।
Lambda फ़ंक्शन बनाने के 7 मुख्य चरण
सातों चरण पूरे होने के बाद, निम्नलिखित विंडो दिखाई देनी चाहिए, जो महत्वपूर्ण जानकारी दिखाती है, जैसे:
- फ़ंक्शन का नाम
- इसका Amazon Resource Name (ARN) लिंक, और
- फ़ंक्शन का लॉजिक लागू करने के लिए एकीकृत क्षेत्र।
checkInformation Lambda फ़ंक्शन का विवरण
अब, शेष तीन टास्क्स (फ़ंक्शंस) checkAgeRange, checkSpotsAvailability, और confirmRegistration के लिए यही प्रक्रिया दोहराएँ।
इनपुट JSON का एक उदाहरण नीचे दिया गया है। इसे समझना महत्वपूर्ण है क्योंकि यह फ़ंक्शंस के कार्यान्वयन के तरीके को प्रभावित करता है।
- JSON में पंजीकृत किए जा रहे बच्चे की जानकारी शामिल है, जिसमें प्रथम नाम, उपनाम, और जन्मतिथि शामिल हैं।
- इसमें माता-पिता का विवरण, सप्ताह के दिन जब बच्चा डेकेयर जाएगा, और अन्य कोई अतिरिक्त जानकारी भी शामिल है।
{
"registration_info": {
"child": {
"firstName": "Mohamed",
"lastName": "Diallo",
"dateOfBirth": "2016-07-01"
},
"parents": {
"mother": {
"firstName": "Aicha",
"lastName": "Cisse",
"email": "aicha.cisse@example.com",
"phone": "123-456-7890"
},
"father": {
"firstName": "Ibrahim",
"lastName": "Diallo",
"email": "ibrahim.diallo@example.com",
"phone": "098-765-4321"
}
},
"daysOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
],
"specialInstructions": "Mohamed has a peanut allergy."
}
}
प्रत्येक Lambda फ़ंक्शन नीचे वर्णित है:
|
फ़ंक्शन |
विवरण |
|
|
|
|
|
|
|
|
|
|
|
|
प्रत्येक फ़ंक्शन का अंतर्निहित कार्यान्वयन नीचे दिया गया है:
checkInformation फ़ंक्शन
import json
def checkInformation(event, context):
registration_info = event['registration_info']
required_fields = ['child', 'parents', 'daysOfWeek']
for field in required_fields:
if field not in registration_info:
return {
'statusCode': 400,
'body': f'Missing required field: {field}'
}
return {
'statusCode': 200,
'body': json.dumps(registration_info)
}
checkAgeRange फ़ंक्शन
import json
import datetime
def checkAgeRange(event, context):
registration_info = json.loads(event['body'])
dob = registration_info['child']['dateOfBirth']
today = datetime.date.today()
dob_date = datetime.datetime.strptime(dob, '%Y-%m-%d').date()
age = today.year - dob_date.year - ((today.month, today.day) < (dob_date.month, dob_date.day))
if age < 2 or age > 5:
return {
'statusCode': 400,
'body': json.dumps('Child is not within the acceptable age range for this daycare.')
}
registration_info['child']['age'] = age
return {
'statusCode': 200,
'body': json.dumps(registration_info)
}
checkSpotsAvailability फ़ंक्शन
import json
def checkSpotsAvailability(event, context):
registration_info = json.loads(event['body'])
spots_available = 20 # This should be dynamically determined, not hardcoded
if spots_available <= 0:
return {
'statusCode': 400,
'body': json.dumps('No spots available in the daycare.')
}
return {
'statusCode': 200,
'body': json.dumps(registration_info)
}
confirmRegistration फ़ंक्शन
import json
import datetime
def confirmRegistration(event, context):
registration_info = json.loads(event['body'])
age = registration_info['child']['age'] # This was added in the checkAgeRange function
if age >= 2 and age < 3:
fees = 800
elif age >= 3 and age < 4:
fees = 750
elif age >= 4 and age < 5:
fees = 700
else: # age >= 5
fees = 650
start_date = datetime.date.today() + datetime.timedelta(weeks=2)
confirmation_details = {
'fees': fees,
'start_date': start_date.isoformat()
}
response = {**registration_info, **confirmation_details}
return {
'statusCode': 200,
'body': json.dumps(response)
}
यह सब होने के बाद, हम Step Functions ग्राफ़िकल इंटरफ़ेस का उपयोग करके अपनी डेकेयर स्टेट मशीन बनाना शुरू कर सकते हैं।
अंतिम स्टेट मशीन नीचे दी गई है; आइए समझते हैं कि इस वर्कफ़्लो तक पहुँचने वाले प्रमुख चरण क्या थे:

डेकेयर उपयोग-मामले के लिए स्टेट मशीन वर्कफ़्लो
आगे बढ़ने से पहले, यह नोट करना महत्वपूर्ण है कि Lambda फ़ंक्शन के आउटपुट का statusCode फ़ील्ड स्टेट मशीन में अगले स्टेट को निर्धारित करने के लिए उपयोग होता है।
- यदि मान 200 है, तो इसका अर्थ है कि जाँच सफल रही, और हम अगले चरण पर बढ़ते हैं।
- यदि
statusCode400 है, तो जाँच असफल रही; ऐसे में हम उस फ़ंक्शन के अनुसार प्रासंगिक संदेश लौटाते हैं जिसने अंतर्निहित टास्क निष्पादित किया था।
जानकारी जाँचें
- स्टेट मशीन यहीं से शुरू होती है।
- पंजीकरण फॉर्म में सभी आवश्यक जानकारी मौजूद है या नहीं, यह जाँचने के लिए एक Lambda फ़ंक्शन इनवोक होता है।
- यदि जानकारी पूर्ण है, तो प्रक्रिया अगले चरण में बढ़ती है। यदि नहीं, तो यह इनफॉर्मेशन अपूर्ण होने का संकेत देते हुए फेल स्टेट के साथ समाप्त हो जाती है।
आयु सीमा जाँचें
- यह चरण केवल तब आता है जब जानकारी की जाँच सफल होती है।
- एक अन्य Lambda फ़ंक्शन इनवोक होता है ताकि यह जाँचा जा सके कि बच्चे की आयु डेकेयर की स्वीकार्य सीमा में आती है या नहीं।
- यदि आयु सीमा के भीतर है, तो प्रक्रिया अगले चरण में बढ़ती है। यदि नहीं, तो यह अमान्य आयु का संकेत देते हुए फेल स्टेट के साथ समाप्त हो जाती है।
सीटों की उपलब्धता जाँचें
- यह चरण केवल तब आता है जब आयु जाँच सफल होती है।
- डेकेयर में सीटें उपलब्ध हैं या नहीं, यह जाँचने के लिए एक Lambda फ़ंक्शन इनवोक होता है।
- यदि सीटें उपलब्ध हैं, तो प्रक्रिया अगले चरण में बढ़ती है। यदि नहीं, तो यह कोई सीट उपलब्ध न होने का संकेत देते हुए फेल स्टेट के साथ समाप्त हो जाती है।
पंजीकरण की पुष्टि करें
- यह अंतिम चरण है और केवल तब आता है जब डेकेयर में सीटें उपलब्ध हों।
- पंजीकरण की पुष्टि करने और बच्चे की आयु के आधार पर शुल्क की गणना करने के लिए एक Lambda फ़ंक्शन इनवोक होता है।
- यह चरण पूर्ण होने के बाद प्रक्रिया सफलता स्टेट के साथ समाप्त होती है, पंजीकरण की पुष्टि करते हुए।
Lambda फ़ंक्शंस के बारे में अधिक जानने के लिए, Streaming Data with AWS Kinesis and Lambda सिखाता है कि AWS पर सर्वरलेस तकनीकों का उपयोग करके स्ट्रीमिंग डेटा के साथ कैसे काम करें।
IAM रोल बनाएँ
अगला चरण IAM रोल परिभाषित करना है ताकि स्टेप फ़ंक्शंस हमारे Lambda फ़ंक्शंस को इनवोक कर सकें। यह निम्न चरणों का पालन करके किया जाता है:

IAM रोल बनाने के पहले नौ चरण

IAM रोल बनाने के 10वाँ और 11वाँ चरण
यह IAM रोल “Config” टैब से शुरू करते हुए निम्न प्रकार से स्टेट मशीन को असाइन किया जा सकता है।

IAM रोल प्रदान करने के 3 मुख्य चरण
सेव करने के बाद, यदि सब ठीक रहा तो हमें निम्न संदेश दिखना चाहिए।

स्टेट मशीन निर्माण के सफल होने का संदेश
जब हम स्टेट मशीन से संतुष्ट हों, तो अगला चरण दाएँ ऊपर स्थित “Create” बटन का उपयोग करके इसे बनाना है।
स्टेट मशीन के निष्पादन का चित्रण
अपने वर्कफ़्लो को परिनियोजित और परीक्षण करना
हमारा वर्कफ़्लो परिनियोजित हो चुका है, और अब स्टेट मशीन का परीक्षण करने का समय है। हम दो परिदृश्यों का परीक्षण करेंगे:
- एक विफलता का मामला जिसमें आयु सीमा वैध है, पर जिस बच्चे का हम पंजीकरण करने की कोशिश कर रहे हैं, वह 5 वर्ष से अधिक का है। यह प्रारंभिक JSON से मेल खाता है।
- एक सफलता का मामला जिसमें बच्चा 3 वर्ष का है।

सफलता के मामले का परिणाम

विफलता के मामले का परिणाम
अपनी Step Functions का अनुकूलन
किसी भी प्रक्रिया का अनुकूलन उस प्रक्रिया से संबंधित सर्वोत्तम प्रथाओं को अपनाने से शुरू होता है, जो प्रदर्शन में सुधार और लागत-प्रभावशीलता ला सकता है। निम्न सर्वोत्तम प्रथाएँ किसी भी AWS Step Function से अधिकतम लाभ उठाने में सहायक हो सकती हैं।
- प्रदर्शन संबंधी सर्वोत्तम प्रथाएँ: इनमें स्टेट ट्रांज़िशन की संख्या को न्यूनतम करना, उपयुक्त टाइमआउट सेटिंग्स का उपयोग करना, और अपने AWS Lambda फ़ंक्शंस का अनुकूलन करना जैसी रणनीतियाँ शामिल हैं।
- लागत-प्रभावशीलता संबंधी सर्वोत्तम प्रथाएँ: इनमें सही प्रकार की स्टेट मशीन (Standard या Express) का उपयोग करना, AWS Lambda लागत प्रबंधन, और Step Functions की प्राइसिंग को समझना और प्रबंधित करना शामिल है।
निष्कर्ष
इस लेख ने AWS Step Functions को समझने और उनका उपयोग करने के लिए एक व्यापक मार्गदर्शिका प्रदान की है। इसकी शुरुआत AWS Step Functions, उनकी प्रमुख विशेषताओं और फायदों से परिचय करवाकर हुई।
इसके बाद लेख ने पाठक को AWS वातावरण सेटअप करने और AWS Step Functions इंटरफ़ेस नेविगेट करने की प्रक्रिया से गुज़ारा।
आगे, इसने अपना पहला AWS Step Function बनाने की प्रक्रिया — एक बुनियादी वर्कफ़्लो बनाने से लेकर उसे परिनियोजित और परीक्षण करने तक — समझाई। लेख ने AWS Step Functions की उन्नत विशेषताओं और उपयोग-मामलों का भी अन्वेषण किया, और अंत में उन्हें अधिकतम दक्षता और लागत-प्रभावशीलता के लिए कैसे अनुकूलित करें, इस पर चर्चा की।
समापन
हमारे लेख AWS, Azure और GCP सर्विस तुलना: डेटा साइंस और AI के लिए और Introduction to AWS Boto in Python आगे सीखने के लिए उत्कृष्ट अगले कदम हो सकते हैं।
पहला लेख डेटा और AI-संबंधित कार्यों — डेटा इंजीनियरिंग से लेकर डेटा विश्लेषण और डेटा साइंस, तथा डेटा एप्लिकेशन बनाने तक — के लिए आवश्यक प्रमुख सेवाओं की तुलना प्रदान करता है। यह चीट शीट तीनों प्रमुख प्लेटफ़ॉर्म्स पर डेटा साइंस और AI के लिए क्लाउड सेवाओं के परिदृश्य को समझने में मदद कर सकती है।
दूसरा लेख Python में AWS Boto का आसान परिचय देता है, और बताता है कि डेटा वर्कफ़्लो को अनुकूलित करने के लिए क्लाउड तकनीक का उपयोग कैसे करें। यह उन सभी के लिए एक बढ़िया संसाधन हो सकता है जो Python का उपयोग करके अपनी AWS ऑपरेशंस को स्वचालित करना चाहते हैं।
AWS पर कई सेवाएँ हैं, और AWS Step Functions में महारत हासिल करने की कुंजी है एप्लिकेशन की आवश्यकताओं को समझना और उन आवश्यकताओं को पूरा करने के लिए AWS सेवाओं और विशेषताओं के सही संयोजन का उपयोग करना।
बहु-प्रतिभाशाली डेटा साइंटिस्ट जो अपना ज्ञान साझा करने और समुदाय को वापस देने में आनंद लेते हैं, ज़ूमाना YouTube पर कंटेंट क्रिएटर हैं और Medium पर शीर्ष तकनीकी लेखक हैं। उन्हें बोलने, कोडिंग करने और पढ़ाने में खुशी मिलती है। ज़ूमाना के पास दो मास्टर डिग्री हैं—पहली पेरिस, फ्रांस से कंप्यूटर साइंस में, मशीन लर्निंग पर केंद्रित, और दूसरी अमेरिका के टेक्सास टेक यूनिवर्सिटी से डेटा साइंस में। उनका करियर फ्रांस में Groupe OPEN में सॉफ्टवेयर डेवलपर के रूप में शुरू हुआ, जिसके बाद वे IBM में मशीन लर्निंग कंसल्टेंट बने, जहाँ उन्होंने बीमा कंपनियों के लिए एंड-टू-एंड एआई समाधान विकसित किए। ज़ूमाना ने Axionable, पेरिस और मॉन्ट्रियल स्थित पहली Sustainable AI स्टार्टअप, से जुड़कर डेटा साइंटिस्ट के रूप में काम किया और फ्रांस, मॉन्ट्रियल, सिंगापुर और स्विट्ज़रलैंड के क्लाइंट्स के लिए मुख्यतः NLP उपयोग मामलों पर आधारित एआई प्रोडक्ट्स लागू किए। इसके अतिरिक्त, अपने समय का 5% उन्होंने अनुसंधान और विकास को समर्पित किया। वर्तमान में, वे IFC - The World Bank Group में सीनियर डेटा साइंटिस्ट के रूप में कार्यरत हैं।




