Step Functions: Sunucusuz İş Akışlarını Düzenleme
Çok adımlı iş akışlarını Step Functions'ta durum makineleri olarak tanımlayın, yakalama ve yeniden deneme bloklarıyla hataları yönetin ve yerel SDK tümleştirmelerini kullanın.
Step Functions: Sunucusuz İş Akışlarını Düzenleme, CoddyKit'te ücretsiz bir Cloud & IT Cert Prep dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cloud & IT Cert Prep öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.
AWS Step Functions Nedir?
AWS Step Functions, dağıtık uygulamaları bir durum makinesinde tanımlanan bir dizi adım olarak koordine eden, tamamen yönetilen bir iş akışı düzenleme hizmetidir. Durum makinesindeki her adım bir durumdur — Lambda çağrısı, AWS SDK çağrısı, bekleme süresi, paralel dal veya seçim (if/else). Step Functions durumu yönetir, yeniden denemeleri ele alır ve görsel yürütme geçmişi sunar; böylece uygulama koduna düzenleme mantığı yazma ihtiyacını ortadan kaldırır.
Amazon States Language (ASL)
Durum makineleri JSON tabanlı bir dil olan Amazon States Language (ASL) ile tanımlanır. Her durumun bir Type değeri (Task, Choice, Wait, Parallel, Map, Pass, Succeed, Fail) ve geçiş yaptığı bir Next durumu bulunur; durum ayrıca sona erebilir. Bir Task durumunun Resource alanı, çağrılacak AWS hizmetini belirtir — Lambda için bir ARN veya ara bir Lambda olmadan 200'den fazla AWS hizmeti için optimize edilmiş bir hizmet entegrasyonu ARN'si.
{
'Comment': 'Order processing workflow',
'StartAt': 'ValidateOrder',
'States': {
'ValidateOrder': {
'Type': 'Task',
'Resource': 'arn:aws:lambda:us-east-1:123456789012:function:ValidateOrder',
'Next': 'ChargePayment',
'Retry': [{'ErrorEquals': ['Lambda.ServiceException'], 'IntervalSeconds': 2, 'MaxAttempts': 3}]
},
'ChargePayment': {
'Type': 'Task',
'Resource': 'arn:aws:states:::dynamodb:putItem',
'Parameters': {'TableName': 'Orders', 'Item': {'orderId': {'S.$': '$.orderId'}}},
'End': true
}
}
}Standard ve Express İş Akışları
Step Functions iki iş akışı türüne sahiptir. Standard Workflows: dayanıklıdır, 1 yıla kadar çalışabilir, tam olarak bir kez yürütme semantiğine sahiptir ve yürütme geçmişini 90 gün boyunca saklar — uzun süren iş süreçleri için uygundur. Express Workflows: yüksek aktarım hızına sahiptir (saniyede 100.000'den fazla yürütme), 5 dakikaya kadar çalışabilir, en az bir kez yürütme semantiğine sahiptir ve günlükleri CloudWatch'a gönderir — gerçek zamanlı olay işleme ve IoT veri işlem hatları için uygundur. Seçiminizi süre, aktarım hızı ve yinelem idempotansı gereksinimlerine göre yapın.
# Create a Standard workflow state machine
aws stepfunctions create-state-machine \
--name OrderProcessing \
--definition file://order-state-machine.json \
--role-arn arn:aws:iam::123456789012:role/StepFunctionsRole \
--type STANDARD
# Create an Express workflow for high-throughput
aws stepfunctions create-state-machine \
--name ClickstreamProcess \
--definition file://click-state-machine.json \
--role-arn arn:aws:iam::123456789012:role/StepFunctionsRole \
--type EXPRESSTask Durumları ve Hizmet Entegrasyonları
Step Functions Task durumları iki entegrasyon desenini destekler. Request-Response: bir AWS hizmetini çağırır ve hemen ilerler (sonucu beklemeden). Sync Integration: bir hizmeti çağırır ve sonraki duruma geçmeden önce tamamlanmasını bekler (ör. bir ECS görevinin, Glue işinin veya SageMaker eğitim işinin bitmesini beklemek). Sync integration, kaynak ARN'sinde :sync:2 son ekini kullanır ve yoklama mantığı ihtiyacını ortadan kaldırır.
# Sync integration: start Glue job and wait for completion
'RunGlueETL': {
'Type': 'Task',
'Resource': 'arn:aws:states:::glue:startJobRun.sync:2',
'Parameters': {
'JobName': 'clean-sales'
},
'Next': 'RunAthenaQuery'
}Dallanma Mantığı için Choice Durumları
Bir Choice durumu, koşullu dallanmayı — iş akışındaki if/else veya switch ifadesinin karşılığını — uygular. Koşulları bir dizi olarak Choices içinde tanımlarsınız; ilk eşleşen koşul sonraki durumu belirler. Default durumu, eşleşmeyen durumları ele alır. Choice durumları, koşullu Lambda mantığı yazmadan; ürün türüne, müşteri düzeyine veya ödeme durumuna göre bir siparişi farklı sipariş karşılama yollarına yönlendirmenizi sağlar.
'RouteByOrderType': {
'Type': 'Choice',
'Choices': [
{
'Variable': '$.orderType',
'StringEquals': 'DIGITAL',
'Next': 'FulfillDigital'
},
{
'Variable': '$.orderType',
'StringEquals': 'PHYSICAL',
'Next': 'FulfillPhysical'
}
],
'Default': 'HandleUnknownType'
}Parallel ve Map Durumları
Bir Parallel durumu birden çok dalı aynı anda çalıştırır ve ilerlemeden önce hepsinin tamamlanmasını bekler — kredi kontrolü ve stok kontrolü gibi eşzamanlı görevleri aynı anda yürütmek için kullanışlıdır. Bir Map durumu, girdideki bir dizi üzerinde yineleme yapar ve aynı durum kümesini her öğeye paralel olarak uygular — önceki bir adımın döndürdüğü bir öğe grubunu, örneğin birden çok yüklenmiş görüntüyü yeniden boyutlandırmak için kullanışlıdır.
'ProcessImages': {
'Type': 'Map',
'ItemsPath': '$.imageKeys',
'MaxConcurrency': 10,
'Iterator': {
'StartAt': 'ResizeImage',
'States': {
'ResizeImage': {
'Type': 'Task',
'Resource': 'arn:aws:lambda:us-east-1:123:function:ResizeImage',
'End': true
}
}
},
'Next': 'NotifyComplete'
}Hata Yönetimi: Catch ve Retry
Step Functions'daki her Task durumunda dayanıklı hata yönetimi için Retry ve Catch blokları bulunabilir. Retry, yapılandırılabilir IntervalSeconds, MaxAttempts ve BackoffRate (üstel geri çekilme çarpanı) değerleriyle otomatik yeniden denemeleri tetikleyen hata türlerini belirtir. Catch, kurtarılamayan hatalar için geri dönüş durumlarını belirtir. Bu bildirimsel hata yönetimi, Lambda işlevlerinin içinde tekrarlanan try/catch bloklarına duyulan ihtiyacı ortadan kaldırır.
'ChargeCard': {
'Type': 'Task',
'Resource': 'arn:aws:lambda:us-east-1:123:function:ChargeCard',
'Retry': [{
'ErrorEquals': ['Lambda.ServiceException', 'States.TaskFailed'],
'IntervalSeconds': 2,
'MaxAttempts': 3,
'BackoffRate': 2.0
}],
'Catch': [{
'ErrorEquals': ['PaymentDeclined'],
'Next': 'NotifyPaymentFailed',
'ResultPath': '$.error'
}],
'Next': 'FulfillOrder'
}Wait Durumları ve Geri Çağırmalar
Bir Wait durumu, iş akışı yürütmesini sabit bir süre boyunca veya belirli bir zaman damgasına kadar duraklatır. Callback deseni (.waitForTaskToken kullanılarak), harici bir sistem belirteçle SendTaskSuccess veya SendTaskFailure çağrısı yapana kadar yürütmeyi duraklatır. Step Functions insan onayı adımlarını bu şekilde modeller: görev belirteciyle bir e-posta gönderilir ve insan, e-posta istemcisindeki onayla/reddet bağlantısına tıkladığında iş akışı devam eder.
# Callback pattern: wait for human approval
'RequestApproval': {
'Type': 'Task',
'Resource': 'arn:aws:states:::sqs:sendMessage.waitForTaskToken',
'Parameters': {
'QueueUrl': 'https://sqs.us-east-1.amazonaws.com/123/approvals',
'MessageBody': {
'taskToken.$': '$$.Task.Token',
'orderId.$': '$.orderId'
}
},
'Next': 'ProcessApproval'
}Step Functions ve EventBridge Entegrasyonu
Step Functions yürütmeleri EventBridge kuralları tarafından başlatılabilir; bu da AWS hizmeti olaylarına yanıt olarak iş akışlarını tetiklemeyi kolaylaştırır. Örneğin bir S3 ObjectCreated olayı, görüntü işleme iş akışını başlatan bir EventBridge kuralını tetikler. Step Functions, yürütmeler başarıyla veya başarısızlıkla sonuçlandığında kendi olaylarını EventBridge'e yayımlayabilir; böylece Step Functions API'sini yoklamaya gerek kalmadan sonraki izleme ve uyarı işlemleri etkinleştirilir.
Step Functions Yürütmelerini İzleme
Step Functions konsolu, hangi durumun başarıyla tamamlandığını, hangisinin çalıştığını ve hangisinin başarısız olduğunu gösteren görsel iş akışı yürütme diyagramını gerçek zamanlı olarak renklerle sunar. Standard iş akışlarının her yürütmesi, tam girdi/çıktı geçmişini saklar (90 gün saklama). Express iş akışlarında günlükler CloudWatch Logs'a gönderilir. İş akışı içinde çağrılan Lambda işlevleri ve diğer hizmetler arasındaki uçtan uca istek gecikmesini izlemek için X-Ray izlemeyi kullanın.
# List recent executions and check status
aws stepfunctions list-executions \
--state-machine-arn arn:aws:states:us-east-1:123456789012:stateMachine:OrderProcessing \
--status-filter FAILED
# Describe a specific failed execution for debugging
aws stepfunctions describe-execution \
--execution-arn arn:aws:states:us-east-1:123456789012:execution:OrderProcessing:exec-001Step Functions, SQS ve EventBridge Karşılaştırması
Step Functions yerine SQS veya EventBridge'i ne zaman kullanacağınızı bilmek, sınavlarda sık karşılaşılan bir karar noktasıdır. Hata yönetimi ve dallanma içeren çok adımlı bir sürecin görünür, durum bilgili düzenlemesine ihtiyacınız olduğunda Step Functions kullanın. İki hizmet arasında görünürlük zaman aşımı üzerinden yeniden denemeyle güvenilir, noktadan noktaya zaman uyumsuz iletişim için SQS kullanın. İçerik desenlerine göre birden çok aboneye olay yönlendirmek için EventBridge kullanın. Bir Step Functions iş akışı üçünü de birleştirebilir: bir görev belirteci aracılığıyla SQS iletisini bekleyebilir, tamamlanma olayını EventBridge'e yayımlayabilir ve Lambda ile SDK çağrılarını zincirleyebilir.
Hızlı Kontrol
Bu dersteki AWS Solutions Architect (SAA-C03) kavramlarını anlayıp anlamadığınızı test edin.
Ders Özeti
Bu derste şunları öğrendiniz: Step Functions, iş akışlarını Task, Choice, Parallel, Map, Wait ve Catch durumlarına sahip durum makineleri olarak düzenler, Standard Workflows, eksiksiz yürütme geçmişiyle 1 yıla kadar çalışmayı desteklerken Express Workflows, yüksek hacimli ve 5 dakikanın altındaki iş yüklerini yönetir ve Callback modeli, görev belirteçleriyle insan onayı gerektiren adımların uygulanmasını sağlar. Sırada, yüksek hacimli gerçek zamanlı olay işleme için Kinesis Data Akışlarını inceleyeceğiz.
Sıkça Sorulan Sorular
“Step Functions: Sunucusuz İş Akışlarını Düzenleme” dersi ücretsiz mi?
Evet — “Step Functions: Sunucusuz İş Akışlarını Düzenleme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cloud & IT Cert Prep kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.
“Step Functions: Sunucusuz İş Akışlarını Düzenleme” dersinde ne öğreneceğim?
Çok adımlı iş akışlarını Step Functions'ta durum makineleri olarak tanımlayın, yakalama ve yeniden deneme bloklarıyla hataları yönetin ve yerel SDK tümleştirmelerini kullanın. Cloud & IT Cert Prep ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Cloud & IT Cert Prep öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Cloud & IT Cert Prep, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Step Functions: Sunucusuz İş Akışlarını Düzenleme” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Cloud & IT Cert Prep dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Cloud & IT Cert Prep dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- EventBridge: Olay Veri Yolu ve Kurallar
- Step Functions: Sunucusuz İş Akışlarını Düzenleme
- Gerçek Zamanlı Olay İşleme için Kinesis Data Streams
- Koreografi ve Orkestrasyon Örüntüleri