1

从先前状态发送的输入采用以下形式:

  [
{
"bucketName": "test-heimdall-employee-data",
"executionId": "ca9f1e5e-4d3a-4237-8a10-8860bb9d58be_1586771571368",
"feedType": "lenel_badge",
"chunkFileKeys": "chunkFileLocation/lenel_badge/68ac7180-69a0-401a-b30c-8f809acf3a1c_1586771581154.csv",
"sanityPassFileKeys": "chunkFileLocation/lenel_badge/0098b86b-fe3c-45ca-a067-4d4a826ee2c1_1586771588882.json"
},
  {
"bucketName": "test-heimdall-employee-data",
"executionId": "ca9f1e5e-4d3a-4237-8a10-8860bb9d58be_1586771571368",
"feedType": "lenel_badge",
"errorFilePath": "error/lenel_badge/2a899128-339d-4262-bb2f-a70cc60e5d4e/1586771589234_2e06e043-ad63-4217-9b53-66405ac9a0fc_1586771581493.csv",
"chunkFileKeys": "chunkFileLocation/lenel_badge/2e06e043-ad63-4217-9b53-66405ac9a0fc_1586771581493.csv",
"sanityPassFileKeys": "chunkFileLocation/lenel_badge/f6957aa7-6e22-496a-a6b8-4964da92cb73_1586771588793.json"
  },
 {
"bucketName": "test-heimdall-employee-data",
"executionId": "ca9f1e5e-4d3a-4237-8a10-8860bb9d58be_1586771571368",
"feedType": "lenel_badge",
"errorFilePath": "error/lenel_badge/8050eb12-c5e6-4ae9-8c4b-0ac539f5c189/1586771589293_1bb32e6c-03fc-4679-9c2f-5a4bca46c8aa_1586771581569.csv",
"chunkFileKeys": "chunkFileLocation/lenel_badge/1bb32e6c-03fc-4679-9c2f-5a4bca46c8aa_1586771581569.csv",
"sanityPassFileKeys": "chunkFileLocation/lenel_badge/48960b7c-04e0-4cce-a77a-44d8834289df_1586771588870.json"
  }
  ]

状态机工作流程设计:在此处输入图像描述

如何从上述输入中提取“feedType”值并转换到下一个状态,并将整个输入传递到下一个状态?

谢谢

4

2 回答 2

0

您可以使用以下命令访问您启动状态机的输入 JSON $$.Execution.Input.todo:。除此之外,您不能直接从一步到下一步访问先前的状态。

例如,假设您有A->B->C 假设您经历A了一个新字段:a : 1,然后您经历B并返回b : 2,当您到达时,C您将只有b : 2. 但是,如果您B也返回a : 1,那么您将拥有{a : 1, b : 2}at C。这通常是您从前几步传递状态的方法。

人们还会做其他事情,例如将数据存储在存储s3桶中并在不同阶段访问该存储桶。您也可以查询阶跃函数,但这可能会很混乱。

其他 hack 包括在并行块中添加 pass 步骤,但这些 hack 并不好,正确的方法是在步骤之间传递数据,或者希望在执行输入中有你需要的内容。

于 2020-04-21T13:56:18.963 回答
0

查看您之前的状态输入,它看起来像是feed_type一个常数。假设你的整个输入的关键是“输入”,所以它就像字典一样{"input":[{...},{...}]}。所以要访问的值feed_type你可以简单地做$.input[0].feed_type

默认情况下,选择状态将传递给它的整个输入传递到下一个阶段。因此,无论进入下一阶段,该阶段都将具有传递给选择状态的相同输入。

为了更好地理解它或作为概念证明检查下面的 Step Function,其中Hello状态是一个choice状态,其他 2 个状态是简单的传递状态。

示例阶跃函数

如果你会在下面看到 Choice 状态的输入输出。是一样的。

在此处输入图像描述

希望能帮助到你。

于 2020-04-23T15:39:08.173 回答