

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Pass 工作流程状态
<a name="state-pass"></a>

**管理状态和转换数据**  
了解如何[使用变量在状态之间传递数据](workflow-variables.md)和[使用 JSONata 转换数据](transforming-data.md)。

`Pass` 状态 (`"Type": "Pass"`) 将其输入传递到其输出，不执行任何工作。`Pass` 状态在构造和调试状态机时非常有用。

您还可以使用 `Pass` 状态通过筛选条件转换 JSON 状态输入，然后将转换后的数据传递到工作流中的下一个状态。有关输入转换的信息，请参阅 [在 Step Functions 工作流中操作参数](input-output-inputpath-params.md)。

除了[常用状态字段](statemachine-structure.md#amazon-states-language-common-fields)之外，`Pass` 状态还允许以下字段。

** `Assign`（可选，仅限 JSONata）**  
为变量分配数据的键值对的集合。有关更多信息，请参阅 [使用变量在状态之间传递数据](workflow-variables.md)。

**`Output`（可选，仅限 JSONata）**  
用于指定和转换状态的输出。指定后，该值将覆盖状态输出默认值。  
输出字段接受任何 JSON 值（对象、数组、字符串、数字、布尔值、null）。任何字符串值（包括对象或数组内的字符串），若被 \$1% %\$1 字符包裹，都会被解析为 JSONata 表达式。  
 输出还直接接受 JSONata 表达式，例如："Output": "\$1% jsonata expression %\$1"  
有关更多信息，请参阅 [在 Step Functi JSONata ons 中使用转换数据](transforming-data.md)。

** `Result`（可选，仅限 JSONPath）**  
指传递到下一个状态的虚拟任务的输出。如果您在状态机定义中包含 `ResultPath` 字段，`Result` 则按 `ResultPath` 指定的方式放置，并传递到下一个状态。

** `ResultPath`（可选，仅限 JSONPath）**  
指定用于放置 `Result` 中指定虚拟任务的*输出*（相对于输入）的位置。输入将进一步按照 `OutputPath` 字段（如果存在）指定的内容进行筛选，然后再用作状态输出。有关更多信息，请参阅 [在 Step Functions 中处理输入和输出](concepts-input-output-filtering.md)。

** `Parameters`（可选，仅限 JSONPath）**  
创建将作为输入传递的键值对集合。您可以指定 `Parameters` 为静态值，也可以使用路径从输入中进行选择。有关更多信息，请参阅 [在 Step Functions 工作流中操作参数](input-output-inputpath-params.md)。

## 通过状态示例（JSONPath）
<a name="pass-state-example"></a>

以下示例说明的是 `Pass` 状态，该状态将一些固定数据注入到状态机中，可用于测试用途。

```
"No-op": {
  "Type": "Pass",
  "Result": {
    "x-datum": 0.381018,
    "y-datum": 622.2269926397355
  },
  "ResultPath": "$.coords",
  "End": true
}
```

假设此状态的输入为以下内容。

```
{
  "georefOf": "Home"
}
```

然后，输出将为：

```
{
  "georefOf": "Home",
  "coords": {
    "x-datum": 0.381018,
    "y-datum": 622.2269926397355
  }
}
```