

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Step Functions에서 ResultPath를 사용하여 상태 출력 지정
<a name="input-output-resultpath"></a>

**상태 관리 및 데이터 트랜스포밍**  
이 페이지에서는 JSONPath를 참조합니다. Step Functions는 최근에 상태를 관리하고 데이터를 트랜스포밍하기 위해 변수와 JSONata를 추가했습니다.  
[변수를 사용하여 데이터 전달](workflow-variables.md)과 [JSONata를 사용하여 데이터 트랜스포밍](transforming-data.md)에 대해 알아봅니다.

상태 출력은 상태 입력의 복사본, 상태 결과(예, `Task` 상태의 Lambda 함수 출력), 또는 상태 입력 및 결과의 조합일 수 있습니다. `ResultPath`를 사용하여 상태 출력으로 이들의 어떤 조합을 전달할지 관리합니다.

다음 상태 유형은 결과를 생성하고 `ResultPath:`를 포함할 수 있습니다.
+ [Pass 워크플로 상태](state-pass.md)
+ [Task 워크플로 상태](state-task.md)
+ [병렬 워크플로 상태](state-parallel.md)
+ [Map 워크플로 상태](state-map.md)

`ResultPath`를 사용하여 작업 입력과 작업 결과를 결합하거나 이들 중 하나를 선택합니다. `ResultPath`에 제공한 경로는 어떤 정보가 출력으로 전달될지 관리합니다.

**참고**  
 `ResultPath`는 JSON에서 단일 노드만 식별하는 범위가 제한된 [참조 경로](amazon-states-language-paths.md#amazon-states-language-reference-paths)의 사용으로 한정됩니다. [Amazon States Language](concepts-amazon-states-language.md)의 [참조 경로](amazon-states-language-paths.md#amazon-states-language-reference-paths) 섹션을 참조하세요.

## ResultPath를 사용하여 입력을 태스크 결과로 바꾸기
<a name="input-output-resultpath-default"></a>

`ResultPath`를 지정하지 않으면 기본 동작은 `"ResultPath": "$"`와 동일합니다. 상태는 전체 상태 입력을 작업의 결과로 바꿉니다.

```
# State Input
{  
 "comment": "This is a test",
 "details": "Default example",
 "who" : "Step Functions"
}

# Path 
"ResultPath": "$"

# Task result
"Hello, Step Functions!"

# State Output
"Hello, Step Functions!"
```

**참고**  
`ResultPath`는 결과를 출력으로 전달하기 전에 입력에 결과의 내용을 포함할 경우 사용됩니다. 하지만 `ResultPath`가 지정되지 않으면 기본적으로 전체 입력을 대체합니다.

## 결과 삭제 및 원래의 입력 유지
<a name="input-output-resultpath-null"></a>

`ResultPath`를 `null`로 설정하면 **원래의 입력**이 출력에 전달됩니다. 상태의 입력 페이로드가 태스크 결과에 관계없이 출력에 직접 복사됩니다.

```
# State Input
{  
 "comment": "This is a test",
 "details": "Default example",
 "who" : "Step Functions"
}

# Path 
"ResultPath": null

# Task result
"Hello, Step Functions!"

# State Output
{  
 "comment": "This is a test",
 "details": "Default example",
 "who" : "Step Functions"
}
```

## ResultPath를 사용하여 입력에 결과 포함
<a name="input-output-resultpath-append"></a>

ResultPath에 대한 경로를 지정하는 경우 상태 출력은 상태 입력과 작업 결과를 결합합니다.

```
# State Input
{  
 "comment": "This is a test",
 "details": "Default example",
 "who" : "Step Functions"
}

# Path 
"ResultPath": "$.taskresult"

# Task result
"Hello, Step Functions!"

# State Output
{  
 "comment": "This is a test",
 "details": "Default example",
 "who" : "Step Functions",
 "taskresult" : "Hello, Step Functions!"
}
```

결과를 입력의 하위 노드로 입력할 수 있습니다. `ResultPath` 속성을 다음과 같이 설정합니다.

```
"ResultPath": "$.strings.lambdaresult"
```

입력은 다음과 같습니다.

```
{
  "comment": "An input comment.",
  "strings": {
    "string1": "foo",
    "string2": "bar",
    "string3": "baz"
  },
  "who": "AWS Step Functions"
}
```

태스크 결과는 입력에 `strings` 노드의 하위 항목으로 삽입됩니다.

```
{
  "comment": "An input comment.",
  "strings": {
    "string1": "foo",
    "string2": "bar",
    "string3": "baz",
    "lambdaresult": "Hello, Step Functions!"
  },
  "who": "AWS Step Functions"
}
```

다음 상태 출력은 기존 입력 JSON과 결과를 하위 노드로 포함합니다.

## ResultPath를 사용하여 입력의 노드를 결과로 업데이트
<a name="input-output-resultpath-amend"></a>

ResultPath에 기존 노드를 지정하면 작업 결과가 해당 기존 노드를 대체합니다.

```
# State Input
{  
 "comment": "This is a test",
 "details": "Default example",
 "who" : "Step Functions"
}

# Path 
"ResultPath": "$.comment"

# Task result
"Hello, Step Functions!"

# State Output
{  
 "comment": "Hello, Step Functions!",
 "details": "Default example",
 "who" : "Step Functions"
}
```

## ResultPath를 사용하여 `Catch`에 오류와 입력 포함
<a name="input-output-resultpath-catch"></a>

경우에 따라 오류가 있는 기존 입력을 보존하고자 할 수 있습니다. `Catch`에 `ResultPath`를 사용하면 원래 입력을 바꾸는 대신 오류를 포함시킬 수 있습니다.

```
"Catch": [{ 
  "ErrorEquals": ["States.ALL"], 
  "Next": "NextTask", 
  "ResultPath": "$.error" 
}]
```

이전 `Catch` 상태가 오류를 발견하면 상태 입력 내 `error` 노드에 결과를 포함합니다. 예를 들어 다음 입력을 고려해 보십시오.

```
{"foo": "bar"}
```

오류 발견 시 상태 출력은 다음과 같습니다.

```
{
  "foo": "bar",
  "error": {
    "Error": "{{Error here}}"
  }
}
```

오류를 처리하는 방법에 대한 자세한 내용은 다음을 참조하십시오.
+ [Step Functions 워크플로의 오류 처리](concepts-error-handling.md)
+ [Step Functions 상태 머신을 사용하여 오류 조건 처리](tutorial-handling-error-conditions.md)