0Pricing
AWS Solutions Architect · Pelajaran

Step Functions: Mengatur Alur Kerja Tanpa Server

Tentukan alur kerja multilangkah sebagai mesin status di Step Functions, tangani kesalahan dengan blok tangkap dan coba lagi, lalu integrasikan integrasi SDK bawaan.

Step Functions: Mengatur Alur Kerja Tanpa Server adalah pelajaran AWS Solutions Architect gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AWS Solutions Architect, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AWS Solutions Architect mencakup 4 pelajaran total.

Apa Itu AWS Step Functions?

AWS Step Functions adalah layanan orkestrasi alur kerja yang dikelola sepenuhnya, yang mengoordinasikan aplikasi terdistribusi sebagai rangkaian langkah yang ditentukan dalam mesin status. Setiap langkah dalam mesin status adalah sebuah status — pemanggilan Lambda, panggilan AWS SDK, periode tunggu, cabang paralel, atau pilihan (if/else). Step Functions mengelola status, menangani percobaan ulang, dan menyediakan riwayat eksekusi visual, sehingga Anda tidak perlu menulis logika orkestrasi dalam kode aplikasi.

Amazon States Language (ASL)

Mesin status ditentukan dalam Amazon States Language (ASL), yaitu bahasa berbasis JSON. Setiap status memiliki Type (Task, Choice, Wait, Parallel, Map, Pass, Succeed, Fail) dan beralih ke status Next atau berakhir. Bidang Resource pada status Task menentukan layanan AWS yang akan dipanggil — ARN untuk Lambda, atau ARN integrasi layanan yang dioptimalkan untuk lebih dari 200 layanan 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
    }
  }
}

Alur Kerja Standard vs Express

Step Functions memiliki dua jenis alur kerja. Alur Kerja Standard: tahan lama, berdurasi hingga 1 tahun, semantik eksekusi tepat satu kali, dan riwayat eksekusi lengkap yang disimpan selama 90 hari — cocok untuk proses bisnis yang berjalan lama. Alur Kerja Express: throughput tinggi (lebih dari 100.000 eksekusi per detik), durasi hingga 5 menit, semantik setidaknya satu kali, dan log yang dikirim ke CloudWatch — cocok untuk pemrosesan peristiwa waktu nyata dan pipeline data IoT. Pilih berdasarkan durasi, throughput, dan kebutuhan idempotensi.

# 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 EXPRESS

Status Task dan Integrasi Layanan

Status Task Step Functions mendukung dua pola integrasi. Request-Response: panggil layanan AWS lalu segera lanjutkan (jalankan dan lupakan). Integrasi Sync: panggil layanan dan tunggu hingga selesai sebelum berpindah ke status berikutnya (misalnya, menunggu tugas ECS selesai, pekerjaan Glue selesai, atau pekerjaan pelatihan SageMaker berakhir). Integrasi Sync menggunakan akhiran :sync:2 pada ARN sumber daya dan menghilangkan kebutuhan akan logika polling.

# 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'
}

Status Choice untuk Logika Percabangan

Status Choice menerapkan percabangan bersyarat — padanan alur kerja untuk pernyataan if/else atau switch. Anda menentukan Choices sebagai array kondisi; kondisi pertama yang cocok menentukan status berikutnya. Status Default menangani kasus yang tidak cocok. Status Choice memungkinkan Anda merutekan pesanan ke jalur pemenuhan yang berbeda berdasarkan jenis produk, tingkatan pelanggan, atau status pembayaran, tanpa menulis logika Lambda bersyarat.

'RouteByOrderType': {
  'Type': 'Choice',
  'Choices': [
    {
      'Variable': '$.orderType',
      'StringEquals': 'DIGITAL',
      'Next': 'FulfillDigital'
    },
    {
      'Variable': '$.orderType',
      'StringEquals': 'PHYSICAL',
      'Next': 'FulfillPhysical'
    }
  ],
  'Default': 'HandleUnknownType'
}

Status Parallel dan Map

Status Parallel menjalankan beberapa cabang secara serentak dan menunggu semuanya selesai sebelum melanjutkan — berguna untuk tugas bersamaan seperti menjalankan pemeriksaan kredit dan pemeriksaan inventaris pada waktu yang sama. Status Map melakukan iterasi pada array dalam input dan menerapkan kumpulan status yang sama ke setiap elemen secara paralel — berguna untuk memproses sekumpulan item yang dikembalikan oleh langkah sebelumnya, seperti mengubah ukuran beberapa gambar yang diunggah.

'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'
}

Penanganan Kesalahan: Catch dan Retry

Setiap status Task dalam Step Functions dapat memiliki blok Retry dan Catch untuk penanganan kesalahan yang tangguh. Retry menentukan jenis kesalahan yang memicu percobaan ulang otomatis dengan IntervalSeconds, MaxAttempts, dan BackoffRate yang dapat dikonfigurasi (pengali jeda eksponensial). Catch menentukan status fallback untuk kesalahan yang tidak dapat dipulihkan. Penanganan kesalahan deklaratif ini menghindari 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'
}

Status Wait dan Callback

Status Wait menjeda eksekusi alur kerja selama durasi tetap atau hingga stempel waktu tertentu. Pola Callback (menggunakan .waitForTaskToken) menjeda eksekusi hingga sistem eksternal memanggil SendTaskSuccess atau SendTaskFailure dengan token tersebut. Beginilah Step Functions memodelkan langkah persetujuan manusia: kirim email yang berisi token tugas, lalu alur kerja dilanjutkan ketika seseorang mengeklik tautan setujui/tolak di aplikasi emailnya.

# 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'
}

Integrasi Step Functions dan EventBridge

Eksekusi Step Functions dapat dimulai oleh aturan EventBridge, sehingga mudah memicu alur kerja sebagai respons terhadap peristiwa layanan AWS. Misalnya, peristiwa S3 ObjectCreated memicu aturan EventBridge yang memulai alur kerja pemrosesan gambar Step Functions. Step Functions juga dapat menerbitkan peristiwanya sendiri ke EventBridge ketika eksekusi berhasil atau gagal, sehingga pemantauan dan pemberitahuan lanjutan dapat dilakukan tanpa melakukan polling pada API Step Functions.

Memantau Eksekusi Step Functions

Konsol Step Functions menyediakan diagram visual eksekusi alur kerja yang menunjukkan status mana yang berhasil, sedang berjalan, dan gagal — dengan penandaan warna secara waktu nyata. Setiap eksekusi menyimpan riwayat input/output lengkap untuk alur kerja Standard (retensi 90 hari). Untuk alur kerja Express, log dikirim ke CloudWatch Logs. Gunakan pelacakan X-Ray untuk melacak latensi permintaan dari ujung ke ujung di seluruh fungsi Lambda dan layanan lain yang dipanggil dalam alur 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-001

Step Functions vs SQS vs EventBridge

Mengetahui kapan harus menggunakan Step Functions dibandingkan SQS atau EventBridge merupakan hal yang umum ditanyakan dalam ujian. Gunakan Step Functions jika Anda memerlukan orkestrasi proses multi-langkah yang terlihat, memiliki status, serta mendukung penanganan kesalahan dan percabangan. Gunakan SQS untuk olah pesan asinkron point-to-point yang andal antara dua layanan, dengan percobaan ulang melalui batas waktu visibilitas. Gunakan EventBridge untuk merutekan peristiwa ke beberapa pelanggan berdasarkan pola konten. Alur kerja Step Functions dapat mengintegrasikan ketiganya: menunggu pesan SQS melalui token tugas, menerbitkan penyelesaian ke EventBridge, serta merangkai panggilan Lambda dan SDK.

Pemeriksaan Singkat

Uji pemahaman Anda tentang konsep AWS Solutions Architect (SAA-C03) dari pelajaran ini.

Ringkasan Pelajaran

Dalam pelajaran ini, Anda mempelajari bahwa: Step Functions mengatur alur kerja sebagai mesin status dengan status Task, Choice, Parallel, Map, Wait, dan Catch, Standard Workflows mendukung durasi hingga 1 tahun dengan riwayat eksekusi lengkap, sedangkan Express Workflows menangani beban kerja ber-throughput tinggi dengan durasi di bawah 5 menit, serta pola Callback dengan token tugas memungkinkan langkah persetujuan yang melibatkan manusia. Berikutnya, kita akan membahas Kinesis Data Streams untuk pemrosesan peristiwa waktu nyata dengan throughput tinggi.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Step Functions: Mengatur Alur Kerja Tanpa Server” gratis?

Ya — teks lengkap “Step Functions: Mengatur Alur Kerja Tanpa Server” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AWS Solutions Architect, upgrade ke CoddyKit PRO. Kursus AWS Solutions Architect mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Step Functions: Mengatur Alur Kerja Tanpa Server”?

Tentukan alur kerja multilangkah sebagai mesin status di Step Functions, tangani kesalahan dengan blok tangkap dan coba lagi, lalu integrasikan integrasi SDK bawaan. Kamu berlatih AWS Solutions Architect dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai AWS Solutions Architect?

Tidak diperlukan pengalaman sebelumnya. AWS Solutions Architect di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Step Functions: Mengatur Alur Kerja Tanpa Server” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran AWS Solutions Architect ini?

Ya. Setiap pelajaran AWS Solutions Architect menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. EventBridge: Bus Peristiwa dan Aturan
  2. Step Functions: Mengatur Alur Kerja Tanpa Server
  3. Kinesis Data Streams untuk Pemrosesan Peristiwa Waktu Nyata
  4. Pola Koreografi vs Orkestrasi
← Kembali ke AWS Solutions Architect