具有多个输入变量的AWS阶跃函数选择阶跃-TimestampEquals匹配 [英] AWS Step function - choice step - TimestampEquals matching with multiple input variables

查看:0
本文介绍了具有多个输入变量的AWS阶跃函数选择阶跃-TimestampEquals匹配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在尝试创建一个Step函数,其中包含一个充当规则引擎的选择步骤。我想将一个日期变量(来自过时的输入JSON)与我使用lambda函数生成的另一个日期变量进行比较。

AWS documentation没有详细介绍时间戳比较器函数,但我假设它可以处理两个输入变量。以下是代码的相关部分:

{
  "Variable": "$.staleInputVariable",
  "TimestampEquals": "$.generatedTimestampUsingLambda"
}

以下是我在尝试更新(!)时收到的错误Step函数。我想强调这样一个事实,即我甚至没有调用SteFunction,因为它在更新函数时失败。

Resource handler returned message: "Invalid State Machine Definition: 'SCHEMA_VALIDATION_FAILED: String does not match RFC3339 timestamp at ..... (Service: AWSStepFunctions; Status Code: 400; Error Code: InvalidDefinition; Request ID: 97df9775-7d2d-4dd2-929b-470c8s741eaf; Proxy: null)" (RequestToken: 030aa97d-35a5-a6a5-0ac5-5698a8662bc2, HandlerErrorCode: InvalidRequest)

步骤函数在没有时间戳匹配的情况下进行更新,因此,我怀疑这段代码。有谁能猜到吗?

编辑(2021年6月8日):

比较-指定要比较的输入变量的两个字段, 比较的类型,以及要与变量进行比较的值。 选择规则支持两个变量之间的比较。在一个选择中 规则,则可以将变量的值与 通过将路径附加到支持的比较名称后输入的状态 操作员。 来源:AWS docs

它清楚地说明可以比较两个变量,但无济于事。仍在尝试:)

aWS

当我向我的一个同事解释这个问题时,我意识到推荐答案文档提到了路径后缀(我把它与$.混淆了)。需要将此路径添加到操作员名称。

以下代码工作正常:

{
  "Variable": "$.staleInputVariable",
  "TimestampEqualsPath": "$.generatedTimestampUsingLambda"
}

再次提醒您注意路径";一词。这就是魔术!

这篇关于具有多个输入变量的AWS阶跃函数选择阶跃-TimestampEquals匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆