Step Functions: Menyelaras Aliran Kerja Tanpa Pelayan
Takrifkan aliran kerja berbilang langkah sebagai mesin keadaan dalam Step Functions, kendalikan ralat dengan blok tangkap dan percubaan semula, serta integrasikan penyepaduan SDK asli.
Step Functions: Menyelaras Aliran Kerja Tanpa Pelayan ialah pelajaran Cloud & IT Cert Prep percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Cloud & IT Cert Prep, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Cloud & IT Cert Prep merangkumi sejumlah 4 pelajaran.
Apakah AWS Step Functions?
AWS Step Functions ialah perkhidmatan pengaturan aliran kerja terurus sepenuhnya yang menyelaras aplikasi teragih sebagai satu siri langkah yang ditakrifkan dalam mesin keadaan. Setiap langkah dalam mesin keadaan ialah keadaan — pemanggilan Lambda, panggilan AWS SDK, tempoh menunggu, cabang selari atau pilihan (if/else). Step Functions mengurus keadaan, mengendalikan percubaan semula dan menyediakan sejarah pelaksanaan secara visual, sekali gus menghapuskan keperluan menulis logik pengaturan dalam kod aplikasi.
Amazon States Language (ASL)
Mesin keadaan ditakrifkan dalam Amazon States Language (ASL), iaitu bahasa berasaskan JSON. Setiap keadaan mempunyai Type (Task, Choice, Wait, Parallel, Map, Pass, Succeed, Fail) dan beralih kepada keadaan Next atau berakhir. Medan Resource bagi keadaan Task menentukan perkhidmatan AWS yang hendak dipanggil — ARN untuk Lambda atau ARN penyepaduan perkhidmatan yang dioptimumkan untuk lebih daripada 200 perkhidmatan AWS tanpa Lambda perantara.
{
'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
}
}
}Aliran Kerja Standard berbanding Express
Step Functions mempunyai dua jenis aliran kerja. Aliran Kerja Standard: tahan lama, dengan tempoh sehingga 1 tahun, semantik pelaksanaan tepat sekali dan sejarah pelaksanaan penuh yang disimpan selama 90 hari — sesuai untuk proses perniagaan yang berjalan lama. Aliran Kerja Express: daya pemprosesan tinggi (lebih daripada 100,000 pelaksanaan sesaat), tempoh sehingga 5 minit, semantik sekurang-kurangnya sekali dan log yang dihantar ke CloudWatch — sesuai untuk pemprosesan acara masa nyata dan saluran paip data IoT. Buat pilihan berdasarkan tempoh, daya pemprosesan dan keperluan idempoten.
# 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 EXPRESSKeadaan Task dan Penyepaduan Perkhidmatan
Keadaan Task Step Functions menyokong dua corak penyepaduan. Request-Response: panggil perkhidmatan AWS dan teruskan dengan segera (lancar dan lupakan). Sync Integration: panggil perkhidmatan dan tunggu sehingga selesai sebelum beralih kepada keadaan seterusnya (contohnya, menunggu tugas ECS selesai, kerja Glue selesai atau kerja latihan SageMaker berakhir). Penyepaduan segerak menggunakan akhiran :sync:2 pada ARN sumber dan menghapuskan keperluan terhadap logik pengundian.
# 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'
}Keadaan Choice untuk Logik Percabangan
Keadaan Choice melaksanakan percabangan bersyarat — setara aliran kerja dengan pernyataan if/else atau switch. Anda mentakrifkan Choices sebagai tatasusunan syarat; syarat pertama yang sepadan menentukan keadaan seterusnya. Keadaan Default mengendalikan kes yang tidak sepadan. Keadaan Choice membolehkan anda menghalakan pesanan ke laluan pemenuhan yang berbeza berdasarkan jenis produk, tahap pelanggan atau status pembayaran, tanpa menulis logik bersyarat Lambda.
'RouteByOrderType': {
'Type': 'Choice',
'Choices': [
{
'Variable': '$.orderType',
'StringEquals': 'DIGITAL',
'Next': 'FulfillDigital'
},
{
'Variable': '$.orderType',
'StringEquals': 'PHYSICAL',
'Next': 'FulfillPhysical'
}
],
'Default': 'HandleUnknownType'
}Keadaan Parallel dan Map
Keadaan Parallel menjalankan berbilang cabang secara serentak dan menunggu semuanya selesai sebelum meneruskan — berguna untuk tugas serentak seperti menjalankan pemeriksaan kredit dan pemeriksaan inventori pada masa yang sama. Keadaan Map mengulangi tatasusunan dalam input dan menggunakan set keadaan yang sama pada setiap elemen secara selari — berguna untuk memproses kelompok Item yang dikembalikan oleh langkah sebelumnya, seperti mengubah saiz berbilang imej yang dimuat naik.
'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'
}Pengendalian Ralat: Catch dan Retry
Setiap keadaan Task dalam Step Functions boleh mempunyai blok Retry dan Catch untuk pengendalian ralat yang berdaya tahan. Retry menentukan jenis ralat yang mencetuskan percubaan semula automatik dengan IntervalSeconds, MaxAttempts dan BackoffRate yang boleh dikonfigurasikan (pengganda pengunduran eksponen). Catch menentukan keadaan sandaran untuk ralat yang tidak boleh dipulihkan. Pengendalian ralat deklaratif ini mengelakkan blok try/catch yang berulang di dalam fungsi Lambda.
'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'
}Keadaan Wait dan Callback
Keadaan Wait menjeda pelaksanaan aliran kerja untuk tempoh tetap atau sehingga cap waktu tertentu. Corak Callback (menggunakan .waitForTaskToken) menjeda pelaksanaan sehingga sistem luaran memanggil SendTaskSuccess atau SendTaskFailure bersama token tersebut. Beginilah Step Functions memodelkan langkah kelulusan manusia: hantar e-mel dengan token tugas, dan aliran kerja disambung semula apabila seseorang mengklik pautan lulus/tolak dalam klien e-mel mereka.
# 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'
}Penyepaduan Step Functions dan EventBridge
Pelaksanaan Step Functions boleh dimulakan oleh peraturan EventBridge, sekali gus memudahkan pencetusan aliran kerja sebagai tindak balas terhadap acara perkhidmatan AWS. Contohnya, acara S3 ObjectCreated mencetuskan peraturan EventBridge yang memulakan aliran kerja pemprosesan imej Step Functions. Step Functions juga boleh menerbitkan acaranya sendiri kepada EventBridge apabila pelaksanaan berjaya atau gagal, membolehkan pemantauan dan pemberitahuan hiliran tanpa mengundi API Step Functions.
Memantau Pelaksanaan Step Functions
Konsol Step Functions menyediakan rajah pelaksanaan aliran kerja visual yang menunjukkan keadaan yang berjaya, sedang berjalan dan gagal — dengan pengekodan warna dalam masa nyata. Setiap pelaksanaan menyimpan sejarah input/output penuhnya bagi aliran kerja Standard (pengekalan 90 hari). Bagi aliran kerja Express, log dihantar ke CloudWatch Logs. Gunakan penjejakan X-Ray untuk menjejaki kependaman permintaan hujung ke hujung merentas fungsi Lambda dan perkhidmatan lain yang dipanggil dalam aliran kerja.
# 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 berbanding SQS berbanding EventBridge
Mengetahui masa untuk menggunakan Step Functions berbanding SQS atau EventBridge ialah perkara keputusan peperiksaan yang biasa. Gunakan Step Functions apabila anda memerlukan pengaturan proses berbilang langkah yang boleh dilihat, mempunyai keadaan, pengendalian ralat dan percabangan. Gunakan SQS untuk pemesejan tak segerak titik ke titik yang boleh dipercayai antara dua perkhidmatan, dengan percubaan semula melalui tamat masa keterlihatan. Gunakan EventBridge untuk penghalaan acara kepada berbilang pelanggan berdasarkan corak kandungan. Aliran kerja Step Functions boleh menyepadukan ketiga-tiganya: menunggu mesej SQS melalui token tugas, menerbitkan penyelesaian kepada EventBridge serta merangkaikan panggilan Lambda dan SDK.
Semakan Pantas
Uji pemahaman anda tentang konsep AWS Solutions Architect (SAA-C03) daripada pelajaran ini.
Ulang Kaji Pelajaran
Dalam pelajaran ini, anda telah mempelajari: Step Functions mengatur aliran kerja sebagai mesin keadaan dengan keadaan Task, Choice, Parallel, Map, Wait dan Catch, Aliran Kerja Standard menyokong tempoh sehingga 1 tahun dengan sejarah pelaksanaan penuh, manakala Aliran Kerja Ekspres mengendalikan beban kerja kadar tinggi yang berlangsung kurang daripada 5 minit, dan corak Callback dengan token tugas membolehkan langkah kelulusan yang melibatkan manusia. Seterusnya, kita akan meneroka Kinesis Data Strim untuk pemprosesan peristiwa masa nyata dengan kadar tinggi.
Pelajari Cloud & IT Cert Prep dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 150
- Pelajaran
- 600
Soalan Lazim
Adakah pelajaran “Step Functions: Menyelaras Aliran Kerja Tanpa Pelayan” percuma?
Ya — teks penuh “Step Functions: Menyelaras Aliran Kerja Tanpa Pelayan” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Cloud & IT Cert Prep, tingkat taraf kepada CoddyKit PRO. Kursus Cloud & IT Cert Prep merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Step Functions: Menyelaras Aliran Kerja Tanpa Pelayan”?
Takrifkan aliran kerja berbilang langkah sebagai mesin keadaan dalam Step Functions, kendalikan ralat dengan blok tangkap dan percubaan semula, serta integrasikan penyepaduan SDK asli. Anda berlatih Cloud & IT Cert Prep menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Cloud & IT Cert Prep?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Cloud & IT Cert Prep di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Step Functions: Menyelaras Aliran Kerja Tanpa Pelayan” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Cloud & IT Cert Prep ini?
Ya. Setiap pelajaran Cloud & IT Cert Prep menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- EventBridge: Bas Peristiwa dan Peraturan
- Step Functions: Menyelaras Aliran Kerja Tanpa Pelayan
- Kinesis Data Streams untuk Pemprosesan Peristiwa Masa Nyata
- Corak Koreografi berbanding Orkestrasi