问题标签 [aws-state-machine]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
343 浏览

amazon-web-services - 在 AWS 步骤函数中中断地图循环执行

我正在尝试构建一个带有循环(Map)的步进函数,只要抛出特定的错误就可以停止,就像这样

我试图将Next元素设置为CatchMap 之外的状态,但我做不到,因为 Map 只接受其中的状态。此外,AFAIK 在 AWS 文档中没有提到这样的功能

0 投票
2 回答
161 浏览

java - Aws 步进函数 - 从失败的步进函数活动中恢复,而不是开始新的执行

我创建了一个包含 4 个不同活动的步进函数,这些活动一个接一个地运行,并且还集成以从 Java 应用程序触发此步进函数。流看起来像这样。

开始 -> 活动1 -> 活动2 -> 活动3 -> 活动4 -> 停止

当某个活动(比如 Activity2)执行失败时,该执行被标记为失败。

现在,有没有办法从之前失败的活动(Activity2)恢复失败的执行,而不是开始新的执行?

我经历了可能通过AWSStepFunctions但似乎没有解决这个要求的操作。 https://docs.aws.amazon.com/step-functions/latest/apireference/API_Operations.html

0 投票
0 回答
25 浏览

amazon-web-services - 如何从 listExecutions 的输出中过滤掉当前正在运行的执行 ID?

我是状态机,我正在使用。

这个 JSON 誓言过滤一个特定 StepFunction 的执行 ARN,但是当我尝试为当前正在运行的执行执行此操作时,使用

然后它不会过滤掉它。如何从列表执行输出中过滤掉当前正在运行的执行 ID?

我的状态机定义。

0 投票
1 回答
83 浏览

amazon-dynamodb - localstack + aws cdk 上的 step 函数中的 Dynamodb 表引用不起作用

Dynamodb 使用 aws CDK 定义并部署到 localstack:

本地堆栈上的状态机具有以下条目:

按要求更新:构造状态机的 cdk 代码:

引用 dynamodb 表的正确方法是什么?我们是否仍将arn:aws:states:::dynamodb:deleteItem其用作资源和idlist-staging表,因为一旦状态机更新为引用 dynamodb,cdk 将不会部署。CDK 在从 step 函数中删除引用时部署。

任何有关如何解决此问题或调试此问题的帮助表示赞赏。

更新 - 最后上面的作品,它是stateMachineDefinition格式不正确的字符串。

0 投票
1 回答
82 浏览

node.js - AWS Step Functions,交互几次后意外退出工作流程

我已经附加了在 AWS 上呈现的工作流。基本上,我是从 API Gateway 触发这个状态机的。但是出于测试目的,我将“等待一个小时”步骤设置为仅等待 60 秒。一切似乎都井然有序,这可能是因为我是菜鸟。

当它被触发时,它将运行等待的循环,然后重新触发 lambda 5 进行 5 次迭代,然后意外退出。

如果我将超时设置为 3600 秒,它不会重复多次。

如果我手动触发状态机,它将运行约 2 分钟

然后给我以下信息

但是,CloudWatch 日志并未表明任何错误,它只是说“WaitStateEntered”,然后在分配的超时后继续。

这是一个快速的工作流程,这是我当前状态的状态机。双关语意。

呈现的 aws 阶跃函数工作流

0 投票
0 回答
63 浏览

amazon-web-services - StepFunctions.getExecutionHistory 节点 Lambda 上的 AWS 开发工具包出错,“资源类型在此上下文中无效:stateMachine”

我正在使用 Node env lambda 中的 AWS 开发工具包;我试图在调用启动之前获取执行历史记录以检查正在运行的状态机。

所以我已经导入了SDK,可以启动状态机了

控制台输出

但是,当我尝试使用相同的 ARN检索状态机执行历史记录时,结果如下。

控制台输出 1

控制台输出 2

0 投票
1 回答
100 浏览

aws-step-functions - 通过步进函数在 DynamoDB 的 putItem 中存储可选属性

我在 AWS step 函数中定义了一个状态机,我的一个状态是将项目存储到 DynamoDB

问题始于baz属性是可选的,即在某些情况下不存在。在这些情况下,putItem任务失败:

执行状态“存储项目”时发生错误(在事件 ID #71 处输入)。> 在输入中找不到为字段 'S.$' 指定的 JSONPath '$.data.baz'

我的备份计划是使用 lambda 来执行这种类型的操作,但我可以直接使用分putItem步任务功能来完成吗?

我想知道是否:

  1. 可以通过 JSONPath 以某种方式将我的整个$.data项目注入“项目”属性,例如:


2) 定义 baz 属性是可选的

0 投票
1 回答
35 浏览

python - AWS Step Functions:在 Python 中返回占位符的子字符串

我有一个 SageMaker TrainingStep,然后是一个 ProcessingStep。我需要将 TrainingStep 的输出路径传递给 ProcessingStep。

TrainingStep 正在将输出到 S3 文件夹写入名为s3://mybucket/output.tar.gz. 但是,作为输出,在 path$['ModelArtifacts']['S3ModelArtifacts']中,它返回了错误的文件名:s3://mybucket/model.tar.gz

为了能够解决这个错误,我必须删除路径的最后 12 个字符。所以我需要运行的亚马逊状态语言表达式是:

我正在使用 Python 来配置我的状态机,所以我有以下代码:

这会生成以下 Amazon 状态语言字符串:

这不是期望的结果,因为期望的结果是产生以下结果:

如何修改我的 Python 代码以产生所需的结果?

0 投票
0 回答
19 浏览

amazon-web-services - AWS Step Function 没有落入 catch 块

我正在运行一个具有映射状态的状态机,并且该映射迭代触发其他状态机的任务类型的项目。现在,当子状态机失败时,即使我为任何类型的错误配置了通配符(States.ALL),父状态机也不会捕获错误。我究竟做错了什么?如何从子状态机捕获错误?