Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konfigurasikan input dan output status dengan Workflow Studio di Step Functions
Mengelola status dan mengubah data
Pelajari tentang Melewati data antar status dengan variabel dan Mengubah data dengan JSONata.
Setiap status membuat keputusan atau melakukan tindakan berdasarkan input yang diterimanya. Dalam kebanyakan kasus, kemudian output diteruskan ke status lain. Di Workflow Studio, Anda dapat mengonfigurasi bagaimana status memfilter dan memanipulasi data input dan outputnya di tab Input dan Output panel. Panel Inspector Gunakan tautan Info untuk mengakses bantuan kontekstual saat mengonfigurasi input dan output.
Untuk informasi detail tentang bagaimana Step Functions memproses input dan output, lihat Memproses input dan output di Step Functions.
Konfigurasikan input ke status
Setiap status menerima masukan dari status sebelumnya sebagai JSON. Jika Anda ingin memfilter input, Anda dapat menggunakan InputPath filter di bawah tab Input di Panel Inspector panel. InputPath adalah string, dimulai dengan $, yang mengidentifikasi simpul JSON tertentu. Ini disebut jalur referensi, dan mereka mengikuti JsonPath sintaks.
Untuk memfilter input:
-
Pilih Filter input dengan InputPath.
-
Masukkan yang valid JsonPath
untuk InputPathfilter. Misalnya,$.data.
Filter InputPath akan ditambahkan ke alur kerja Anda.
contoh Contoh 1: Gunakan InputPath filter di Workflow Studio
Katakanlah input ke status Anda mencakup data JSON berikut.
{
"comment": "Example for InputPath",
"dataset1": {
"val1": 1,
"val2": 2,
"val3": 3
},
"dataset2": {
"val1": "a",
"val2": "b",
"val3": "c"
}
}Untuk menerapkan InputPath filter, pilih Filter input dengan InputPath, lalu masukkan jalur referensi yang sesuai. Jika Anda masuk$.dataset2.val1, JSON berikut diteruskan sebagai masukan ke status.
{"a"}Jalur referensi juga dapat memiliki pilihan nilai. Jika data yang Anda referensikan adalah { "a":
[1, 2, 3, 4] } dan Anda menerapkan jalur referensi $.a[0:2] sebagai InputPath filter, berikut ini adalah hasilnya.
[ 1, 2 ]Status alur kerja paralel,Memetakan status alur kerja, dan status Lulus status alur kerja aliran memiliki opsi pemfilteran input tambahan yang disebut Parameters di bawah tab Input mereka. Filter ini berlaku setelah InputPath filter dan dapat digunakan untuk membangun objek JSON kustom yang terdiri dari satu atau lebih pasangan kunci-nilai. Nilai masing-masing pasangan dapat berupa nilai statis, dapat dipilih dari input, atau dapat dipilih dari Mengakses data eksekusi dari objek Context di Step Functions dengan jalur.
catatan
Untuk menentukan bahwa parameter menggunakan jalur referensi untuk menunjuk ke simpul JSON di input, nama parameter harus diakhiri dengan .$.
contoh Contoh 2: Buat input JSON kustom untuk status Paralel
Katakanlah data JSON berikut adalah input ke keadaan Paralel.
{
"comment": "Example for Parameters",
"product": {
"details": {
"color": "blue",
"size": "small",
"material": "cotton"
},
"availability": "in stock",
"sku": "2317",
"cost": "$23"
}
}Untuk memilih bagian dari input ini dan meneruskan pasangan nilai kunci tambahan dengan nilai statis, Anda dapat menentukan yang berikut di bidang Parameter, di bawah tab Input status Paralel.
{
"comment": "Selecting what I care about.",
"MyDetails": {
"size.$": "$.product.details.size",
"exists.$": "$.product.availability",
"StaticValue": "foo"
}
}
Data JSON berikut akan menjadi hasilnya.
{
"comment": "Selecting what I care about.",
"MyDetails": {
"size": "small",
"exists": "in stock",
"StaticValue": "foo"
}
}
Konfigurasikan output status
Setiap status menghasilkan output JSON yang dapat difilter sebelum diteruskan ke status berikutnya. Ada beberapa filter yang tersedia, dan masing-masing mempengaruhi output dengan cara yang berbeda. Filter keluaran yang tersedia untuk setiap status tercantum di bawah tab Output di panel Inspector. Untuk Status alur kerja tugas negara bagian, filter keluaran apa pun yang Anda pilih diproses dalam urutan ini:
-
ResultSelector: Gunakan filter ini untuk memanipulasi hasil status. Anda dapat membangun sebuah objek JSON baru dengan bagian dari hasil. -
Menentukan output status menggunakan Step ResultPath Functions: Gunakan filter ini untuk memilih kombinasi input status dan hasil tugas untuk diteruskan ke output. -
Memfilter output status menggunakan OutputPath: Gunakan filter ini untuk memfilter output JSON untuk memilih informasi mana dari hasil yang akan diteruskan ke status berikutnya.
Gunakan ResultSelector
ResultSelector adalah filter output opsional untuk status berikut:
-
Status alur kerja tugasnegara bagian, yang merupakan semua status yang tercantum di tab Tindakan padaPeramban status.
-
Memetakan status alur kerjastates, di tab Flow pada browser States.
-
Status alur kerja paralelstates, di tab Flow pada browser States.
ResultSelector dapat digunakan untuk membangun sebuah objek JSON kustom yang terdiri atas satu pasangan nilai kunci atau lebih. Nilai masing-masing pasangan dapat berupa nilai statis atau dipilih dari hasil status dengan jalur.
catatan
Untuk menentukan bahwa parameter menggunakan jalur untuk mereferensikan simpul JSON dalam hasil, nama parameter harus diakhiri dengan .$.
contoh Contoh untuk menggunakan ResultSelector filter
Dalam contoh ini, Anda gunakan ResultSelector untuk memanipulasi respons dari panggilan Amazon CreateCluster EMR API untuk status CreateCluster EMR Amazon. Berikut ini adalah hasil dari panggilan Amazon EMR CreateCluster API.
{
"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"
}
}Untuk memilih bagian dari informasi ini dan meneruskan pasangan kunci-nilai tambahan dengan nilai statis, tentukan yang berikut ini di ResultSelectorbidang, di bawah tab Output negara bagian.
{
"result": "found",
"ClusterId.$": "$.output.ClusterId",
"ResourceType.$": "$.resourceType"
}Menggunakan ResultSelector menghasilkan hasil sebagai berikut.
{
"result": "found",
"ClusterId": "AKIAIOSFODNN7EXAMPLE",
"ResourceType": "elasticmapreduce"
}Gunakan ResultPath
Output dari suatu keadaan dapat berupa salinan inputnya, hasil yang dihasilkannya, atau kombinasi input dan hasilnya. Gunakan ResultPath untuk mengontrol kombinasi ini yang akan diteruskan ke output status. Untuk kasus penggunaan ResultPath lebih banyak, lihat Menentukan output status menggunakan Step ResultPath Functions.
ResultPath adalah filter output opsional untuk status berikut:
-
Status alur kerja tugasnegara bagian, yang merupakan semua status yang tercantum di tab Tindakan pada browser Negara.
-
Memetakan status alur kerjastates, di tab Flow pada browser States.
-
Status alur kerja paralelstates, di tab Flow pada browser States.
-
Lulus status alur kerjastates, di tab Flow pada browser States.
ResultPath dapat digunakan untuk menambahkan hasilnya ke input status asli. Jalur yang ditentukan menunjukkan tempat untuk menambahkan hasilnya.
contoh Contoh untuk menggunakan ResultPath filter
Katakanlah berikut ini adalah masukan ke status Tugas.
{
"details": "Default example",
"who": "AWS Step Functions"
}Hasil dari status Tugas adalah sebagai berikut.
Hello, AWS Step FunctionsAnda dapat menambahkan hasil ini ke input status dengan menerapkan ResultPath dan memasukkan jalur referensi yang menunjukkan tempat untuk menambahkan hasilnya, seperti $.taskresult:
Dengan ResultPath ini, berikut adalah JSON yang diteruskan sebagai output status.
{
"details": "Default example",
"who": "AWS Step Functions",
"taskresult": "Hello, AWS Step Functions!"
}Gunakan OutputPath
OutputPathFilter memungkinkan Anda menyaring informasi yang tidak diinginkan, dan hanya meneruskan sebagian JSON yang Anda butuhkan. OutputPathIni adalah string, dimulai dengan$, yang mengidentifikasi node dalam teks JSON.
contoh Contoh untuk menggunakan OutputPath filter
Bayangkan panggilan API Lambda Invoke mengembalikan metadata selain hasil fungsi Lambda.
{
"ExecutedVersion": "$LATEST",
"Payload": {
"foo": "bar",
"colors": [
"red",
"blue",
"green"
],
"car": {
"year": 2008,
"make": "Toyota",
"model": "Matrix"
}
},
"SdkHttpMetadata": {
"AllHttpHeaders": {
"X-Amz-Executed-Version": ["$LATEST"]
...Anda dapat menggunakan OutputPath untuk memfilter metadata tambahan. Secara default, nilai OutputPathfilter untuk status Lambda Invoke yang dibuat melalui Workflow Studio adalah. $.Payload Nilai default ini menghapus metadata tambahan dan mengembalikan output yang setara dengan menjalankan fungsi Lambda secara langsung.
Contoh hasil tugas Lambda Invoke dan nilai $.Payload untuk filter Output meneruskan data JSON berikut sebagai output.
{
"foo": "bar",
"colors": [
"red",
"blue",
"green"
],
"car": {
"year": 2008,
"make": "Toyota",
"model": "Matrix"
}
}catatan
OutputPathFilter adalah filter keluaran terakhir yang berlaku, jadi jika Anda menggunakan filter keluaran tambahan seperti ResultSelector atauResultPath, Anda harus memodifikasi nilai default $.Payload untuk OutputPath filter yang sesuai.