AWS:传递 Lambda 和 Step 函数上下文以捕获结果

问题描述 投票:0回答:0

使用 AWS lambdas 在 Node.js 中工作,我知道:

  1. Lambda 上下文 作为第二个参数传递给处理程序
  2. Step Function Context可以在数据流的不同点获得,最有用的是参数step,它可以添加到lambda的输入
  3. ResultSelector 也可以将数据(如 Step Function Context)添加到结果中,除了转换被 ignored 并且在 Catch 语句中不允许。
  4. A Pass 状态可以位于状态之间也可以添加数据。
  5. ResultPath 可用于在 Catch 语句中将错误 附加到输入

我想要的目标

除了错误信息,我还想要来自 Lambda 上下文和 Step 函数上下文的信息,用于 Lambda 和出错的步进状态(特别是来自

State
键,如
Execution
StateMachine
,和
Task
对于任何步骤都是相同的)添加到Catch的最终输出结果中以传递给之后的下一步。

实现这一目标所面临的挑战

但是,事实证明,如果使用参数将 Step Function Context 添加到 lambda 输入,那么 changed 输入仍然是 not 使用 ResultPath 访问,因为 ResultPath 仅将 original 输入引入到步骤状态,而不是参数转换的输入!您可以使用数据流模拟器对此进行测试(您需要登录到 AWS 帐户才能使用它)。当然,Catch 和它的 Next 调用之间的 Pass 状态将无法再访问之前出错的 State Context。

使用我当前的代码库,我相信我有一种变通方法可以相当轻松地获取 Lambda 上下文,而无需进行重大更改,因为它已经被传递和使用。但是,通过 lambda(通过传递给其输入的参数)访问 Step Function Context 需要在处理程序和相关代码中更改数百行代码才能使用它。

终极问题

有什么方法我缺少直接添加从出错的状态到Catch语句结果的Step Function Context,同时还维护输入和错误信息,这在Catch语句使用

ResultPath
中很常见

amazon-web-services aws-lambda error-handling workflow aws-step-functions
© www.soinside.com 2019 - 2024. All rights reserved.