نظرية
ما هي وظائف الخطوة؟
من AWS Docs: Step Functions هي خدمة تنسيق بدون خادم تتيح لك الجمع بين وظائف AWS Lambda وخدمات AWS الأخرى لإنشاء تطبيقات مهمة للأعمال. باستخدام وحدة التحكم الرسومية لـ Step Functions ، ترى سير عمل التطبيق الخاص بك كسلسلة من الخطوات التي تحركها الأحداث. تعتمد وظائف الخطوة على آلات ومهام الدولة. آلة الحالة هي سير عمل. المهمة هي حالة في سير العمل وهي وحدة عمل يتم تنفيذها بواسطة خدمة AWS أخرى. كل خطوة من خطوات سير العمل هي حالة.
باستخدام عناصر تحكم Step Functions المضمنة ، يمكنك التحقق من حالة كل خطوة من خطوات سير العمل للتأكد من أن التطبيق الخاص بك يعمل بالترتيب الصحيح وكما هو متوقع. اعتمادًا على حالة الاستخدام الخاصة بك ، يمكن لـ Step Functions الاتصال بخدمات AWS مثل Lambda لأداء المهام. يمكنك إنشاء مهام سير عمل لمعالجة ونشر نماذج التعلم الآلي. يمكنك استخدام Step Functions لإدارة خدمات AWS مثل AWS Glue لإنشاء مهام سير عمل Extract و Transform و Load (ETL). يمكنك أيضًا إنشاء مهام سير عمل مؤتمتة طويلة للتطبيقات التي تتطلب تفاعلًا بشريًا.
أو بعبارة بسيطة ، خدمة لإدارة عملياتك.
ما هي حالات الاستخدام الممكنة لوظائف الخطوة؟
- وظائف التنظيم لامدا
- المتفرعة
- معالجة الاستثناء (إعادة المحاولة أو الصيد)
- المشاركة البشرية في العملية
- تماثل
أنواع العمليات في وظائف الخطوة
- قياسي - مطلوب للعمليات الجارية لفترة طويلة ، ولديه دعم واسع للخدمات وخيارات التفاعل
- Express - مطلوب للعمليات سريعة التشغيل (5 دقائق) ، مما يوفر حوالي 20 مرة لكل مليون عملية منفذة. تكامل أقل مع خدمات AWS
أنواع التكامل مع خدمات AWS
طلب استجابة (افتراضي) - للاتصال بالخدمة والسماح لوظائف الخطوة بالانتقال إلى الحالة التالية بعد تلقي استجابة HTTP.
قم بتشغيل وظيفة (.sync) - استدعاء الخدمة وانتظار اكتمال المهمة.
انتظر رد اتصال برمز مهمة (.waitForTaskToken) - يتصل بالخدمة برمز المهمة وينتظر عودة رمز المهمة باستخدام رد الاتصال.
مقارنة التكامل مع خدمات AWS في الأنواع القياسية والصريحة
تكامل الخدمة المدعومة للمعيار
| الخدمات | استجابة للطلب | تشغيل وظيفة (.sync) | انتظر رد الاتصال (.waitForTaskToken) |
|---|---|---|---|
| لامدا | ✓ | ✓ | |
| AWS Batch | ✓ | ✓ | |
| دينامو دي بي | ✓ | ||
| Amazon ECS / AWS Fargate | ✓ | ✓ | ✓ |
| أمازون SNS | ✓ | ✓ | |
| أمازون SQS | ✓ | ✓ | |
| AWS Glue | ✓ | ✓ | |
| SageMaker | ✓ | ✓ | |
| أمازون EMR | ✓ | ✓ | |
| CodeBuild | ✓ | ✓ | |
| وظائف خطوة AWS | ✓ | ✓ | ✓ |
دعم تكامل الخدمة لـ Express
| الخدمات | استجابة للطلب | تشغيل وظيفة (.sync) | انتظر رد الاتصال (.waitForTaskToken) |
|---|---|---|---|
| لامدا | ✓ | ||
| AWS Batch | ✓ | ||
| دينامو دي بي | ✓ | ||
| Amazon ECS / AWS Fargate | ✓ | ||
| أمازون SNS | ✓ | ||
| أمازون SQS | ✓ | ||
| AWS Glue | ✓ | ||
| SageMaker | ✓ | ||
| أمازون EMR | ✓ | ||
| CodeBuild | ✓ | ||
| وظائف الخطوة | ✓ | ✓ |
كفى نظرية ، دعنا نذهب على سبيل المثال.
مثال نظري
من أجل الحصول على فكرة عن شكل الخدمة على الأقل ، ضع في اعتبارك مثال Hello world.
الشروط المسبقة
- حساب AWS
- انتقل إلى خدمة Step Functions في حساب AWS
إذن ما يلي هو ما نقوم به:
- انتقل إلى "إنشاء وظائف الخطوة"
- تعريف آلة الحالة = المؤلف مع مقتطفات التعليمات البرمجية
- النوع = قياسي
- التعريف =
{ "Comment": "A Hello World example of the Amazon States Language using Pass states", "StartAt": "Hello", "States": { "Hello": { "Type": "Pass", "Result": "Hello", "Next": "World" }, "World": { "Type": "Pass", "Result": "World", "End": true } } }
انقر فوق بدء التنفيذ. يمكن حذف الإدراج. يجب أن تشاهد مخططًا مثل هذا:
تهانينا ، لقد قمت بإنشاء أبسط وظائف الخطوة.
بدلا من الاستنتاج
إذا كان هذا الموضوع مثيرًا للاهتمام ، فسنقوم في الجزء التالي بإنشاء وظائف الخطوة مع تكامل AWS Lambda + SQS + SNS ، كما هو موضح في الرسم التخطيطي:
روابط للمصادر:
https://docs.aws.amazon.com/step-functions/