

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

# 创建具有条件节点的工作流
<a name="flows-ex-condition"></a>

下图显示了具有一个条件节点的工作流根据满足的条件返回的三个可能的值之一：

![\[使用具有两个条件的条件节点的示例。\]](http://docs.aws.amazon.com/zh_cn/bedrock/latest/userguide/images/flows/flows-condition.png)


**要在控制台中构建和测试此工作流，请执行以下操作：**

1. 按照[在 Amazon Bedrock 中创建您的第一个流](flows-get-started.md)中的说明创建流。

1. 在中央窗格中删除**提示**节点。

1. 执行以下操作，设置条件节点：

   1. 在**流生成器**左侧窗格中，选择**节点**选项卡。

   1. 将一个**条件**节点拖动到中间窗格的工作流中。

   1. 在**流生成器**窗格中选择**配置**选项卡。

   1. 展开**输入**部分。按如下所示配置输入：  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/bedrock/latest/userguide/flows-ex-condition.html)

      该配置意味着条件节点需要一个包含 `retailPrice`、`marketPrice` 和 `type` 的 JSON 对象。

   1. 通过执行以下操作配置条件：

      1. 在**条件**部分中，可以选择更改条件的名称。然后在**条件**文本框中添加以下条件：**(retailPrice > 10) and (type == "produce")**。

      1. 选择**添加条件**，添加第二个条件。（可选）更改第二个条件的名称。然后在**条件**文本框中添加以下条件：**(retailPrice < marketPrice)**。

1. 选择**工作流输入**节点，然后选择**配置**选项卡。选择**对象**作为**类型**。这意味着工作流调用需要接收一个 JSON 对象。

1. 添加工作流输出节点，这样总共有三个节点。在每个流输出节点的**流生成器**窗格的**配置**选项卡中，对其进行如下配置：

   1. 将第一个工作流输出节点的输入类型设为 **String**，表达式设为 **\$1.data.action[0]**，以返回传入对象 `action` 字段中数组的第一个值。

   1. 将第二个工作流输出节点的输入类型设为 **String**，表达式设为 **\$1.data.action[1]**，以返回传入对象 `action` 字段中数组的第一个值。

   1. 将第三个工作流输出节点的输入类型设为 **String**，表达式设为 **\$1.data.action[2]**，以返回传入对象 `action` 字段中数组的第一个值。

1. 将第一个条件连接到第一个工作流输出节点，将第二个条件连接到第二个工作流输出节点，将默认条件连接到第三个工作流输出节点。

1. 通过执行以下操作来连接所有节点中的输入和输出，以完成工作流：

   1. 将连接从**工作流输入**节点的输出节点拖到条件节点中的 **retailPrice** 输入。

   1. 将连接从**工作流输入**节点的输出节点拖到条件节点中的 **marketPrice** 输入。

   1. 将连接从**工作流输入**节点的输出节点拖到条件节点中的 **type** 输入。

   1. 将连接从**工作流输入**节点的输出节点拖到三个输出节点中每个节点的 **document** 输入。

1. 选择**保存**，保存您的工作流。现在，您的工作流应该可以进行测试了。

1. 在右侧的**测试流**窗格中输入以下 JSON 对象，测试您的流。为每个输入选择**运行**：

   1. 以下对象满足第一个条件（`retailPrice` 大于 10 且 `type` 为“produce”），并返回 `action` 中的第一个值（“don't buy”）：

      ```
      {
          "retailPrice": 11, 
          "marketPrice": 12, 
          "type": "produce", 
          "action": ["don't buy", "buy", "undecided"]
      }
      ```
**注意**  
尽管第一个和第二个条件都已满足，但第一个条件优先，因为它排在第一位。

   1. 以下对象满足第二个条件（`retailPrice` 低于 `marketPrice`），并返回 `action` 中的第二个值（“buy”）：

      ```
      {
          "retailPrice": 11, 
          "marketPrice": 12, 
          "type": "meat", 
          "action": ["don't buy", "buy", "undecided"]
      }
      ```

   1. 以下对象既不满足第一个条件（`retailPrice` 大于 10，但 `type` 不是“produce”），也不满足第二个条件（`retailPrice` 不低于 `marketPrice`），因此返回 `action` 中的第三个值（“undecided”）：

      ```
      {
          "retailPrice": 11, 
          "marketPrice": 11, 
          "type": "meat", 
          "action": ["don't buy", "buy", "undecided"]
      }
      ```