Bersamaan mengulangi item dalam alur kerja Step Functions - AWS Step Functions

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Bersamaan mengulangi item dalam alur kerja Step Functions

Pada topik sebelumnya,Tentukan tugas paralel, Anda belajar cara menjalankan cabang langkah terpisah secara paralel menggunakan Parallel status. Dengan menggunakan Map status, Anda dapat menjalankan serangkaian langkah alur kerja untuk setiap item dalam kumpulan data. Iterasi Map status berjalan secara paralel, yang memungkinkan untuk memproses kumpulan data dengan cepat.

Dengan menyertakan Map status dalam alur kerja Anda, Anda dapat melakukan tugas, seperti pemrosesan data, menggunakan salah satu dari duaMode pemrosesan status peta: Mode sebaris dan mode Terdistribusi. Untuk mengonfigurasi Map status, Anda menentukanItemProcessor, yang berisi JSON objek yang menentukan mode pemrosesan Map status dan definisinya. Anda akan menjalankan Map status dalam mode Inline default, yang mendukung hingga 40 iterasi bersamaan. Saat Anda menjalankan Map status dalam mode Terdistribusi, ini mendukung hingga 10.000 eksekusi alur kerja anak paralel.

Ketika eksekusi alur kerja Anda memasuki Map status, itu akan mengulangi JSON array yang ditentukan dalam input status. Untuk setiap item array, iterasi yang sesuai berjalan dalam konteks alur kerja yang berisi status. Map Ketika semua iterasi selesai, Map status akan mengembalikan array yang berisi output untuk setiap item yang diproses oleh. ItemProcessor

Anda akan menggunakan Map status dalam mode Inline untuk mengambil skor kredit pemohon dengan mengulangi satu set biro kredit. Untuk melakukan ini, pertama-tama Anda mengambil nama semua biro kredit yang disimpan dalam tabel Amazon DynamoDB, dan kemudian menggunakan Map negara untuk memutar melalui daftar biro kredit untuk mengambil skor kredit pemohon yang dilaporkan oleh masing-masing biro ini.

Langkah 1: Buat tabel DynamoDB untuk menyimpan nama semua biro kredit

Pada langkah ini, Anda membuat tabel bernama GetCreditBureau menggunakan konsol DynamoDB. Tabel menggunakan atribut string Nama sebagai kunci Partition. Dalam tabel ini, Anda menyimpan nama semua biro kredit tempat Anda ingin mengambil skor kredit pemohon.

  1. Masuk ke AWS Management Console dan buka konsol DynamoDB di. https://console.aws.amazon.com/dynamodb/

  2. Di panel navigasi di konsol, pilih Tabel, lalu pilih Buat tabel.

  3. Masukkan detail tabel sebagai berikut:

    1. Untuk Nama tabel, masukkan GetCreditBureau.

    2. Untuk Kunci partisi, masukkan Name.

    3. Simpan pilihan default, dan pilih Buat tabel.

  4. Setelah tabel Anda dibuat, dalam daftar Tabel, pilih GetCreditBureautabel.

  5. Pilih Tindakan, lalu pilih Buat item.

  6. Untuk Nilai, masukkan nama biro kredit. Misalnya, CredTrack.

  7. Pilih Buat item.

  8. Ulangi proses ini dan buat item untuk nama biro kredit lainnya. Misalnya, KapFinn dan CapTrust.

Langkah 2: Perbarui mesin negara - Ambil hasil dari tabel DynamoDB

Di konsol Step Functions, Anda akan menambahkan Task status dan menggunakan AWS SDKintegrasi untuk mengambil nama biro kredit dari tabel DynamoDB yang Anda buat di Langkah 1. Anda akan menggunakan output dari langkah ini sebagai masukan untuk Map status yang akan Anda tambahkan nanti dalam alur kerja Anda.

  1. Buka mesin CreditCardWorkflownegara untuk memperbaruinya.

  2. Pilih daftar Dapatkan negara biro kredit.

  3. Untuk APIParameter, tentukan nilai nama Tabel sebagaiGetCreditBureau.

Langkah 3: Buat fungsi Lambda yang mengembalikan skor kredit untuk semua biro kredit

Pada langkah ini, Anda membuat fungsi Lambda yang menerima nama semua biro kredit sebagai masukan, dan mengembalikan skor kredit pemohon untuk masing-masing biro kredit ini. Fungsi Lambda ini akan dipanggil dari Map status yang akan Anda tambahkan dalam alur kerja Anda.

  1. Buat fungsi Lambda Node.js 16.x dan beri nama. get-credit-score

  2. Pada halaman berjudul get-credit-score, tempel kode berikut ke area sumber Kode.

    function getScore(arr) { let temp; let i = Math.floor((Math.random() * arr.length)); temp = arr[i]; console.log(i); console.log(temp); return temp; } const arrScores = [700, 820, 640, 460, 726, 850, 694, 721, 556]; exports.handler = (event, context, callback) => { let creditScore = getScore(arrScores); callback(null, "Credit score pulled is: " + creditScore + "."); };
  3. Menyebarkan fungsi Lambda.

Langkah 4: Perbarui mesin status - tambahkan status Peta untuk mengambil skor kredit secara berulang

Di konsol Step Functions, Anda menambahkan Map status yang memanggil fungsi get-credit-scoreLambda untuk memeriksa skor kredit pemohon untuk semua biro kredit yang dikembalikan oleh daftar Dapatkan status biro kredit.

  1. Buka mesin CreditCardWorkflownegara untuk memperbaruinya.

  2. Pilih Dapatkan skor dari semua negara biro kredit.

  3. Di tab Konfigurasi, pilih Menyediakan jalur ke array item dan kemudian masukkan$.Items.

  4. Pilih Dapatkan semua skor langkah di dalam Map negara bagian.

  5. Di tab Konfigurasi, pastikan untuk jenis Integrasi, Dioptimalkan dipilih.

  6. Untuk nama Fungsi, mulailah mengetik nama fungsi get-credit-scoreLambda dan pilih dari daftar dropdown yang muncul.

  7. Untuk Payload, pilih No payload.

Langkah selanjutnya

Pada langkah berikutnyaJalankan alur kerja Anda , Anda akan belajar cara menjalankan alur kerja Anda.