Mengotomatiskan pengiriman acara Step Functions dengan EventBridge - AWS Step Functions

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

Mengotomatiskan pengiriman acara Step Functions dengan EventBridge

Dengan EventBridge, Anda dapat memilih acara dari alur kerja standar Step Functions, untuk dikirim ke layanan lain untuk pemrosesan tambahan. Teknik ini menyediakan cara yang fleksibel untuk menghubungkan komponen secara longgar dan memantau sumber daya Anda.

Amazon EventBridge adalah layanan tanpa server yang menghubungkan komponen aplikasi bersama-sama untuk membangun aplikasi berbasis peristiwa yang dapat diskalakan. Arsitektur berbasis peristiwa adalah gaya membangun sistem perangkat lunak yang digabungkan secara longgar yang bekerja sama dengan memancarkan dan menanggapi peristiwa. Peristiwa mewakili perubahan status, atau pembaruan.

Dengan menggunakan EventBridge untuk mengirimkan peristiwa Step Functions ke layanan lain, Anda dapat memantau alur kerja standar Anda tanpa terus-menerus memanggil DescribeExecutionAPIuntuk mendapatkan status. Perubahan status dalam eksekusi mesin status dikirim ke EventBridge otomatis. Anda dapat menggunakan acara tersebut untuk menargetkan layanan. Misalnya, acara mungkin memanggil AWS Lambda fungsi, mempublikasikan pesan ke topik Amazon Simple Notification Service (AmazonSNS), atau bahkan menjalankan SFN alur kerja lain.

Cara kerja pengiriman acara

Step Functions menghasilkan dan mengirimkan peristiwa ke bus EventBridge acara default yang secara otomatis disediakan di setiap AWS akun. Bus acara adalah router yang menerima acara dan mengirimkannya ke nol atau lebih tujuan, atau target. Target lainnya AWS layanan. Anda dapat menentukan aturan untuk bus acara yang membandingkan peristiwa dengan pola acara aturan. Ketika acara cocok dengan pola, bus acara mengirimkan acara ke target yang ditentukan. Diagram berikut menunjukkan proses ini:

AWS layanan mengirim acara ke EventBridge tempat aturan cocok dengan acara dan mengirimkannya ke target.
Alur kerja standar versus Express

Hanya alur kerja standar yang memancarkan peristiwa ke. EventBridge Untuk memantau eksekusi alur kerja ekspres, Anda dapat menggunakan CloudWatch Log. Lihat Masuk CloudWatch Log.

Acara Step Functions

Step Functions mengirimkan peristiwa berikut ke bus EventBridge acara default secara otomatis. Peristiwa yang cocok dengan pola acara aturan dikirim ke target yang ditentukan berdasarkan upaya terbaik. Acara mungkin dikirim keluar dari pesanan.

Untuk informasi selengkapnya, lihat EventBridge peristiwa di Panduan EventBridge Pengguna Amazon.

Jenis detail acara Deskripsi

Perubahan Status Eksekusi

Merupakan perubahan status eksekusi mesin negara.

Menyampaikan peristiwa Step Functions menggunakan EventBridge

Agar bus acara EventBridge default mengirim peristiwa Step Functions ke target, Anda harus membuat aturan. Setiap aturan berisi pola acara, yang EventBridge cocok dengan setiap acara yang diterima di bus acara. Jika data peristiwa cocok dengan pola peristiwa yang ditentukan, EventBridge mengirimkan peristiwa itu ke target aturan.

Untuk petunjuk komprehensif tentang cara membuat aturan bus acara, lihat Membuat aturan yang bereaksi terhadap peristiwa di Panduan EventBridge Pengguna.

Anda juga dapat membuat aturan bus acara untuk mesin status tertentu dari Step Functions konsol:

  • Pada halaman Detail mesin status, pilih Tindakan, lalu pilih Buat EventBridgeaturan.

    EventBridge Konsol terbuka ke halaman Buat aturan, dengan mesin status dipilih sebagai sumber peristiwa untuk aturan tersebut.

  • Ikuti prosedur yang dirinci dalam Membuat aturan yang bereaksi terhadap peristiwa di Panduan EventBridge Pengguna.

Membuat pola acara yang cocok dengan peristiwa Step Functions

Setiap pola peristiwa adalah JSON objek yang berisi:

  • sourceAtribut yang mengidentifikasi layanan yang mengirim acara. Untuk peristiwa Step Functions, sumbernya adalahaws.states.

  • (Opsional): detail-type Atribut yang berisi array jenis acara yang cocok.

  • (Opsional): detail Atribut yang berisi data acara lain yang cocok.

Misalnya, pola acara berikut cocok dengan semua peristiwa Perubahan Status Eksekusi dari Step Functions:

{ "source": ["aws.states"], "detail-type": ["Step Functions Execution Status Change"] }

Sementara contoh berikut cocok dengan eksekusi tertentu yang terkait dengan mesin status tertentu, ketika eksekusi itu gagal atau habis waktu:

{ "source": ["aws.states"], "detail-type": ["Step Functions Execution Status Change"], "detail": { "status": ["FAILED", "TIMED_OUT"], "stateMachineArn": ["arn:aws:states:us-east-1:123456789012:stateMachine:state-machine"], "executionArn": ["arn:aws:states:us-east-1:123456789012:execution:state-machine-name:execution-name"] } }

Untuk informasi selengkapnya tentang penulisan pola acara, lihat Pola acara di Panduan EventBridge Pengguna.

Memicu mesin status Step Functions menggunakan peristiwa

Anda juga dapat menentukan mesin status Step Functions sebagai target untuk aturan bus EventBridge acara. Ini memungkinkan Anda untuk memicu eksekusi alur kerja Step Functions sebagai respons terhadap peristiwa dari yang lain AWS layanan.

Untuk informasi selengkapnya, lihat EventBridgeTarget Amazon di Panduan EventBridge Pengguna Amazon.

Referensi detail acara Step Functions

Semua acara dari AWS layanan memiliki seperangkat bidang umum yang berisi metadata tentang acara tersebut, seperti AWS layanan yang merupakan sumber acara, waktu acara dibuat, akun dan wilayah tempat acara berlangsung, dan lain-lain. Untuk definisi bidang umum ini, lihat Referensi struktur acara di Panduan EventBridge Pengguna Amazon.

Selain itu, setiap acara memiliki detail bidang yang berisi data khusus untuk peristiwa tertentu.

Saat menggunakan EventBridge untuk memilih dan mengelola peristiwa Step Functions, penting untuk mengingat hal berikut:

  • sourceBidang untuk semua peristiwa dari Step Functions diatur keaws.states.

  • detail-typeBidang menentukan jenis acara.

    Misalnya, Step Functions Execution Status Change.

  • detailBidang berisi data yang spesifik untuk peristiwa tertentu.

Untuk informasi tentang membuat pola peristiwa yang memungkinkan aturan agar sesuai dengan peristiwa Step Functions, lihat Pola peristiwa di Panduan EventBridge Pengguna Amazon.

Untuk informasi selengkapnya tentang peristiwa dan cara EventBridge memprosesnya, lihat EventBridgeperistiwa Amazon di Panduan EventBridge Pengguna Amazon.

Perubahan Status Eksekusi

Merupakan perubahan status eksekusi mesin negara.

detail-typeBidang source dan disertakan di bawah ini karena berisi nilai spesifik untuk peristiwa Step Functions. Untuk definisi bidang metadata lain yang disertakan dalam semua peristiwa, lihat Referensi struktur peristiwa di EventBridge Panduan Pengguna Amazon.

Struktur peristiwa

{ . . ., "detail-type": "Step Functions Execution Status Change", "source"": "aws.states", . . ., "detail"": { "executionArn"" : "string", "input" : "string", "inputDetails" : { "included" : "boolean" }, "name" : "string", "output" : "string", "outputDetails" : { "included" : "boolean" }, "startDate" : "integer", "stateMachineArn" : "string", "stopDate" : "integer", "status" : "RUNNING | SUCCEEDED | FAILED | TIMED_OUT | ABORTED | PENDING_REDRIVE" } }

Keterangan

Peristiwa Perubahan Status Eksekusi dapat berisi properti input dalam definisinya. Untuk beberapa peristiwa, peristiwa Perubahan Status Eksekusi juga dapat berisi properti keluaran dalam definisinya.

  • Jika input lolos gabungan dan output keluar yang dikirim EventBridge melebihi 248KB, maka input akan dikecualikan. Demikian pula, jika output escape melebihi 248KB, output akan dikecualikan. Ini adalah hasil dari kuota acara.

  • Anda dapat menentukan apakah muatan telah dipotong dengan properti inputDetails dan outputDetails. Untuk informasi selengkapnya, lihat Tipe Data CloudWatchEventsExecutionDataDetails.

  • Untuk Alur Kerja Standar, gunakan DescribeExecutionuntuk melihat input dan output penuh.

    DescribeExecution ini tidak tersedia untuk Alur Kerja Ekspres. Jika Anda ingin melihat input/output penuh, Anda dapat:

Contoh

contoh Perubahan Status Eksekusi: eksekusi dimulai
{ "version": "0", "id": "315c1398-40ff-a850-213b-158f73e60175", "detail-type": "Step Functions Execution Status Change", "source": "aws.states", "account": "123456789012", "time": "2019-02-26T19:42:21Z", "region": "us-east-2", "resources": [ "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name" ], "detail": { "executionArn": "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name", "stateMachineArn": "arn:aws::states:us-east-2:123456789012:stateMachine:state-machine", "name": "execution-name", "status": "RUNNING", "startDate": 1551225271984, "stopDate": null, "input": "{}", "inputDetails": { "included": true }, "output": null, "outputDetails": null } }
contoh Perubahan Status Eksekusi: eksekusi berhasil
{ "version": "0", "id": "315c1398-40ff-a850-213b-158f73e60175", "detail-type": "Step Functions Execution Status Change", "source": "aws.states", "account": "123456789012", "time": "2019-02-26T19:42:21Z", "region": "us-east-2", "resources": [ "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name" ], "detail": { "executionArn": "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name", "stateMachineArn": "arn:aws:states:us-east-2:123456789012:stateMachine:state-machine", "name": "execution-name", "status": "SUCCEEDED", "startDate": 1547148840101, "stopDate": 1547148840122, "input": "{}", "inputDetails": { "included": true }, "output": "\"Hello World!\"", "outputDetails": { "included": true } } }
contoh Perubahan Status Eksekusi: eksekusi gagal
{ "version": "0", "id": "315c1398-40ff-a850-213b-158f73e60175", "detail-type": "Step Functions Execution Status Change", "source": "aws.states", "account": "123456789012", "time": "2019-02-26T19:42:21Z", "region": "us-east-2", "resources": [ "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name" ], "detail": { "executionArn": "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name", "stateMachineArn": "arn:aws:states:us-east-2:123456789012:stateMachine:state-machine", "name": "execution-name", "status": "FAILED", "startDate": 1551225146847, "stopDate": 1551225151881, "input": "{}", "inputDetails": { "included": true }, "output": null, "outputDetails": null } }
contoh Perubahan Status Eksekusi: timed-out
{ "version": "0", "id": "315c1398-40ff-a850-213b-158f73e60175", "detail-type": "Step Functions Execution Status Change", "source": "aws.states", "account": "123456789012", "time": "2019-02-26T19:42:21Z", "region": "us-east-2", "resources": [ "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name" ], "detail": { "executionArn": "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name", "stateMachineArn": "arn:aws:states:us-east-2:123456789012:stateMachine:state-machine", "name": "execution-name", "status": "TIMED_OUT", "startDate": 1551224926156, "stopDate": 1551224927157, "input": "{}", "inputDetails": { "included": true }, "output": null, "outputDetails": null
contoh Perubahan Status Eksekusi: dibatalkan
{ "version": "0", "id": "315c1398-40ff-a850-213b-158f73e60175", "detail-type": "Step Functions Execution Status Change", "source": "aws.states", "account": "123456789012", "time": "2019-02-26T19:42:21Z", "region": "us-east-2", "resources": [ "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name" ], "detail": { "executionArn": "arn:aws:states:us-east-2:123456789012:execution:state-machine-name:execution-name", "stateMachineArn": "arn:aws:states:us-east-2:123456789012:stateMachine:state-machine", "name": "execution-name", "status": "ABORTED", "startDate": 1551225014968, "stopDate": 1551225017576, "input": "{}", "inputDetails": { "included": true }, "output": null, "outputDetails": null } }