Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Memanipulasi parameter dalam alur kerja Step Functions

Mode fokus
Memanipulasi parameter 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.

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

Mengelola status dan mengubah data

Bidang InputPath, Parameters dan ResultSelector menyediakan cara untuk memanipulasi JSON saat bergerak melalui alur kerja Anda. InputPath dapat membatasi input yang diteruskan dengan memfilter notasi JSON dengan menggunakan jalur (lihat Menggunakan JSONPath jalur). Dengan Parameters bidang ini, Anda dapat meneruskan kumpulan pasangan kunci-nilai, menggunakan nilai statis atau pilihan dari input menggunakan jalur.

Bidang ResultSelector menyediakan cara untuk memanipulasi hasil status sebelum ResultPath diterapkan.

AWS Step Functions menerapkan InputPath bidang terlebih dahulu, dan kemudian Parameters bidang. Pertama-tama Anda dapat memfilter input mentah Anda ke pilihan yang ingin Anda gunakan InputPath, lalu menerapkan Parameters untuk memanipulasi input itu lebih lanjut, atau menambahkan nilai-nilai baru. Kemudian Anda dapat menggunakan bidang ResultSelector untuk memanipulasi output status sebelum ResultPath diterapkan.

InputPath

Gunakan InputPath untuk memilih sebagian dari input status.

Misalnya, anggap input ke status Anda meliputi berikut ini.

{ "comment": "Example for InputPath.", "dataset1": { "val1": 1, "val2": 2, "val3": 3 }, "dataset2": { "val1": "a", "val2": "b", "val3": "c" } }

Anda dapat menerapkan InputPath.

"InputPath": "$.dataset2",

Dengan InputPath sebelumnya, berikut ini adalah JSON yang diteruskan sebagai input.

{ "val1": "a", "val2": "b", "val3": "c" }
catatan

Sebuah jalur dapat menghasilkan pilihan nilai. Pertimbangkan contoh berikut.

{ "a": [1, 2, 3, 4] }

Jika Anda menerapkan jalur $.a[0:2], berikut ini adalah hasilnya.

[ 1, 2 ]

Parameter

Bagian ini menjelaskan berbagai cara Anda dapat menggunakan bidang Parameter.

Pasangan kunci/nilai

Gunakan bidang Parameters untuk membuat kumpulan pasangan kunci-nilai yang diteruskan sebagai input. Nilai masing-masing dapat berupa nilai statis yang Anda sertakan dalam definisi mesin status Anda, atau dipilih dari input atau objek Konteks dengan jalur. Untuk pasangan kunci-nilai tempat nilai yang dipilih menggunakan jalur, nama kunci harus diakhiri .$.

Misalnya, anggap Anda memberikan input berikut.

{ "comment": "Example for Parameters.", "product": { "details": { "color": "blue", "size": "small", "material": "cotton" }, "availability": "in stock", "sku": "2317", "cost": "$23" } }

Untuk memilih beberapa informasi, Anda dapat menentukan parameter ini dalam ketentuan mesin status Anda.

"Parameters": { "comment": "Selecting what I care about.", "MyDetails": { "size.$": "$.product.details.size", "exists.$": "$.product.availability", "StaticValue": "foo" } },

Mengingat input dan bidang Parameters sebelumnya, ini adalah JSON yang dilewatkan.

{ "comment": "Selecting what I care about.", "MyDetails": { "size": "small", "exists": "in stock", "StaticValue": "foo" } },

Selain input, Anda dapat mengakses objek JSON khusus, yang dikenal sebagai objek Context. Objek Context menyertakan informasi tentang eksekusi mesin state Anda. Lihat Mengakses data eksekusi dari objek Context di Step Functions .

Sumber daya terhubung

Bidang Parameters juga dapat meneruskan informasi ke sumber daya yang terhubung. Misalnya, jika status tugas Anda mengatur AWS Batch pekerjaan, Anda dapat meneruskan parameter API yang relevan secara langsung ke tindakan API layanan tersebut. Untuk informasi selengkapnya, lihat:

Amazon S3

Jika data fungsi Lambda yang Anda lewati antar status mungkin bertambah menjadi lebih dari 262.144 byte, sebaiknya gunakan Amazon S3 untuk menyimpan data, dan menerapkan salah satu metode berikut:

Atau, Anda dapat menyesuaikan implementasi untuk meneruskan muatan yang lebih kecil dalam eksekusi Anda.

ResultSelector

Gunakan bidang ResultSelector untuk memanipulasi hasil status sebelum ResultPath diterapkan. Bidang ResultSelector memungkinkan Anda membuat koleksi pasangan nilai kunci, yang mana nilai-nilainya statis atau dipilih dari hasil status. Dengan menggunakan ResultSelector bidang, Anda dapat memilih bagian mana dari hasil status yang ingin Anda lewatkan ke ResultPath bidang tersebut.

catatan

Dengan ResultPath bidang tersebut, Anda dapat menambahkan output ResultSelector bidang ke input asli.

ResultSelector adalah bidang opsional dalam status berikut:

Misalnya, integrasi layanan Step Functions mengembalikan metadata selain muatan dalam hasil. ResultSelector dapat memilih bagian dari hasil dan menggabungkannya dengan input status dengan ResultPath. Dalam contoh ini, kami ingin memilih hanya resourceType dan ClusterId, dan menggabungkannya dengan input status dari Amazon EMR createCluster.sync. Diberikan sebagai berikut:

{ "resourceType": "elasticmapreduce", "resource": "createCluster.sync", "output": { "SdkHttpMetadata": { "HttpHeaders": { "Content-Length": "1112", "Content-Type": "application/x-amz-JSON-1.1", "Date": "Mon, 25 Nov 2019 19:41:29 GMT", "x-amzn-RequestId": "1234-5678-9012" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { "RequestId": "1234-5678-9012" }, "ClusterId": "AKIAIOSFODNN7EXAMPLE" } }

Anda kemudian dapat memilih resourceType dan ClusterId menggunakan ResultSelector:

"Create Cluster": { "Type": "Task", "Resource": "arn:aws:states:::elasticmapreduce:createCluster.sync", "Parameters": { <some parameters> }, "ResultSelector": { "ClusterId.$": "$.output.ClusterId", "ResourceType.$": "$.resourceType" }, "ResultPath": "$.EMROutput", "Next": "Next Step" }

Dengan input yang diberikan, menggunakan ResultSelector menghasilkan:

{ "OtherDataFromInput": {}, "EMROutput": { "ClusterId": "AKIAIOSFODNN7EXAMPLE", "ResourceType": "elasticmapreduce", } }

Meratakan array array

Jika Status alur kerja peta status Status alur kerja paralel atau di mesin status Anda mengembalikan array array, Anda dapat mengubahnya menjadi array datar dengan ResultSelector bidang. Anda dapat menyertakan bidang ini di dalam definisi status Paralel atau Peta untuk memanipulasi hasil status ini.

Untuk meratakan array, gunakan sintaks: [*] di ResultSelector bidang seperti yang ditunjukkan pada contoh berikut.

"ResultSelector": { "flattenArray.$": "$[*][*]" }

Untuk contoh yang menunjukkan cara meratakan array, lihat Langkah 3 dalam tutorial berikut:

Di halaman ini

PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.