

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
<a name="workflow-studio-process"></a>

**Mengelola status dan mengubah data**  
Pelajari tentang [Melewati data antar status dengan variabel](workflow-variables.md) dan [Mengubah data dengan JSONata](transforming-data.md).

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](workflow-studio.md#workflow-studio-components-formdefinition) Gunakan tautan **Info** untuk mengakses bantuan kontekstual saat mengonfigurasi input dan output. 

![\[Screenshot ilustratif yang menampilkan input status, output, dan panel bantuan info\]](http://docs.aws.amazon.com/id_id/step-functions/latest/dg/images/wfs_input_output_01.png)


Untuk informasi detail tentang bagaimana Step Functions memproses input dan output, lihat [Memproses input dan output di Step Functions](concepts-input-output-filtering.md). 

## Konfigurasikan input ke status
<a name="workflow-studio-process-input"></a>

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](workflow-studio.md#workflow-studio-components-formdefinition) panel. `InputPath` adalah string, dimulai dengan `$`, yang mengidentifikasi simpul JSON tertentu. Ini disebut [jalur referensi](amazon-states-language-paths.md), dan mereka mengikuti JsonPath sintaks. 

Untuk memfilter input:
+ Pilih **Filter input dengan InputPath**.
+ Masukkan yang valid [JsonPath](https://datatracker.ietf.org/wg/jsonpath/about/)untuk `InputPath` filter. Misalnya, **\$1.data**.

Filter `InputPath` akan ditambahkan ke alur kerja Anda.

**Example 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**\$1.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](state-parallel.md),[Memetakan status alur kerja](state-map.md), dan status [Lulus status alur kerja](state-pass.md) 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](input-output-contextobject.md) dengan jalur. 

**catatan**  
Untuk menentukan bahwa parameter menggunakan jalur referensi untuk menunjuk ke simpul JSON di input, nama parameter harus diakhiri dengan `.$`.

**Example 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
<a name="workflow-studio-process-output"></a>

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](state-task.md) negara bagian, filter keluaran apa pun yang Anda pilih diproses dalam urutan ini: 

1.  `ResultSelector`: Gunakan filter ini untuk memanipulasi hasil status. Anda dapat membangun sebuah objek JSON baru dengan bagian dari hasil. 

1.  `Menentukan output status menggunakan Step ResultPath Functions`: Gunakan filter ini untuk memilih kombinasi input status dan hasil tugas untuk diteruskan ke output. 

1.  `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
<a name="workflow-studio-process-output-resultselector"></a>

`ResultSelector` adalah filter output opsional untuk status berikut:
+  [Status alur kerja tugas](state-task.md)negara bagian, yang merupakan semua status yang tercantum di tab **Tindakan** pada[Peramban status](workflow-studio.md#workflow-studio-components-states). 
+  [Memetakan status alur kerja](state-map.md)states, di tab **Flow** pada browser States. 
+  [Status alur kerja paralel](state-parallel.md)states, 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 `.$`.

**Example 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 **ResultSelector**bidang, 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
<a name="workflow-studio-process-output-resultpath"></a>

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](input-output-resultpath.md).

`ResultPath` adalah filter output opsional untuk status berikut:
+  [Status alur kerja tugas](state-task.md)negara bagian, yang merupakan semua status yang tercantum di tab **Tindakan** pada browser Negara. 
+  [Memetakan status alur kerja](state-map.md)states, di tab **Flow** pada browser States. 
+  [Status alur kerja paralel](state-parallel.md)states, di tab **Flow** pada browser States. 
+  [Lulus status alur kerja](state-pass.md)states, di tab **Flow** pada browser States. 

`ResultPath` dapat digunakan untuk menambahkan hasilnya ke input status asli. Jalur yang ditentukan menunjukkan tempat untuk menambahkan hasilnya.

**Example 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 Functions
```
Anda dapat menambahkan hasil ini ke input status dengan menerapkan `ResultPath` dan memasukkan [jalur](amazon-states-language-paths.md) 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
<a name="workflow-studio-process-output-resultselector"></a>

`OutputPath`Filter memungkinkan Anda menyaring informasi yang tidak diinginkan, dan hanya meneruskan sebagian JSON yang Anda butuhkan. `OutputPath`Ini adalah string, dimulai dengan`$`, yang mengidentifikasi node dalam teks JSON.

**Example 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 **OutputPath**filter 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"
 }
}
```
`OutputPath`Filter adalah filter keluaran terakhir yang berlaku, jadi jika Anda menggunakan filter keluaran tambahan seperti `ResultSelector` atau`ResultPath`, Anda harus memodifikasi nilai default `$.Payload` untuk `OutputPath` filter yang sesuai. 