Amazon web services 如何从选择状态过渡到阶跃函数?

Amazon web services 如何从选择状态过渡到阶跃函数?,amazon-web-services,aws-step-functions,serverless-framework-step-functions,Amazon Web Services,Aws Step Functions,Serverless Framework Step Functions,从先前状态发送的输入采用以下形式: [ { "bucketName": "test-heimdall-employee-data", "executionId": "ca9f1e5e-4d3a-4237-8a10-8860bb9d58be_1586771571368", "feedType": "lenel_badge", "chunkFileKeys": "chunkFileLocation/lenel_badge/68ac7180-69a0-401a-b30c-8f809acf3a1c_

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

  [
{
"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”值并转换到下一个状态,以及如何将整个输入传递到下一个状态


谢谢

您可以访问启动状态机时使用的输入JSON:
$$.Execution.input.todo
。除此之外,您不能从一个步骤到下一个步骤直接访问上一个状态

例如,假设您有
A->B->C
假设您通过
A
,它给出了一个新字段:
A:1
,然后您通过
B
,它返回
B:2
,当您到达
C
时,您将只有
B:2
。但是如果
B
也返回
a:1
,那么
{a:1,B:2}
将位于
C
。这通常是为了在前几个步骤中传递一个步骤的状态

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


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

您可以使用:
$$.execution.input.todo访问启动状态机的输入JSON。除此之外,您不能从一个步骤到下一个步骤直接访问上一个状态

例如,假设您有
A->B->C
假设您通过
A
,它给出了一个新字段:
A:1
,然后您通过
B
,它返回
B:2
,当您到达
C
时,您将只有
B:2
。但是如果
B
也返回
a:1
,那么
{a:1,B:2}
将位于
C
。这通常是为了在前几个步骤中传递一个步骤的状态

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


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

查看以前的状态输入,它看起来像是一个常量。假设整个输入的键是“input”,所以它是类似于字典的
{“input”:[{…},{…}]}
等等。因此,要访问
feed\u type
的值,只需执行
$。输入[0]。feed\u type

默认情况下,选择状态将传递给它的整个输入传递到下一个阶段。所以无论下一个阶段是什么,这个阶段都会有和传递到选择状态相同的输入

为了更好地理解它或作为概念验证,请检查以下步骤函数,其中Hello状态为
choice
状态,其他两种状态为简单的传递状态

如果你能在下面看到选择状态的输入和输出。它是相同的


希望有帮助。

查看您以前的状态输入,它看起来像是一个常量。假设整个输入的键是“input”,所以它是类似于字典的
{“input”:[{…},{…}]}
等等。因此,要访问
feed\u type
的值,只需执行
$。输入[0]。feed\u type

默认情况下,选择状态将传递给它的整个输入传递到下一个阶段。所以无论下一个阶段是什么,这个阶段都会有和传递到选择状态相同的输入

为了更好地理解它或作为概念验证,请检查以下步骤函数,其中Hello状态为
choice
状态,其他两种状态为简单的传递状态

如果你能在下面看到选择状态的输入和输出。它是相同的

希望能有帮助