问题标签 [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.
amazon-web-services - 在 AWS 步骤函数中中断地图循环执行
我正在尝试构建一个带有循环(Map)的步进函数,只要抛出特定的错误就可以停止,就像这样
我试图将Next
元素设置为Catch
Map 之外的状态,但我做不到,因为 Map 只接受其中的状态。此外,AFAIK 在 AWS 文档中没有提到这样的功能
java - Aws 步进函数 - 从失败的步进函数活动中恢复,而不是开始新的执行
我创建了一个包含 4 个不同活动的步进函数,这些活动一个接一个地运行,并且还集成以从 Java 应用程序触发此步进函数。流看起来像这样。
开始 -> 活动1 -> 活动2 -> 活动3 -> 活动4 -> 停止
当某个活动(比如 Activity2)执行失败时,该执行被标记为失败。
现在,有没有办法从之前失败的活动(Activity2)恢复失败的执行,而不是开始新的执行?
我经历了可能通过AWSStepFunctions
但似乎没有解决这个要求的操作。
https://docs.aws.amazon.com/step-functions/latest/apireference/API_Operations.html
amazon-web-services - 如何从 listExecutions 的输出中过滤掉当前正在运行的执行 ID?
我是状态机,我正在使用。
这个 JSON 誓言过滤一个特定 StepFunction 的执行 ARN,但是当我尝试为当前正在运行的执行执行此操作时,使用
然后它不会过滤掉它。如何从列表执行输出中过滤掉当前正在运行的执行 ID?
我的状态机定义。
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
格式不正确的字符串。
node.js - AWS Step Functions,交互几次后意外退出工作流程
我已经附加了在 AWS 上呈现的工作流。基本上,我是从 API Gateway 触发这个状态机的。但是出于测试目的,我将“等待一个小时”步骤设置为仅等待 60 秒。一切似乎都井然有序,这可能是因为我是菜鸟。
当它被触发时,它将运行等待的循环,然后重新触发 lambda 5 进行 5 次迭代,然后意外退出。
如果我将超时设置为 3600 秒,它不会重复多次。
如果我手动触发状态机,它将运行约 2 分钟
然后给我以下信息
但是,CloudWatch 日志并未表明任何错误,它只是说“WaitStateEntered”,然后在分配的超时后继续。
这是一个快速的工作流程,这是我当前状态的状态机。双关语意。
amazon-web-services - StepFunctions.getExecutionHistory 节点 Lambda 上的 AWS 开发工具包出错,“资源类型在此上下文中无效:stateMachine”
我正在使用 Node env lambda 中的 AWS 开发工具包;我试图在调用启动之前获取执行历史记录以检查正在运行的状态机。
所以我已经导入了SDK,可以启动状态机了
控制台输出
但是,当我尝试使用相同的 ARN检索状态机执行历史记录时,结果如下。
控制台输出 1
控制台输出 2
aws-step-functions - 通过步进函数在 DynamoDB 的 putItem 中存储可选属性
我在 AWS step 函数中定义了一个状态机,我的一个状态是将项目存储到 DynamoDB
问题始于baz
属性是可选的,即在某些情况下不存在。在这些情况下,putItem
任务失败:
执行状态“存储项目”时发生错误(在事件 ID #71 处输入)。> 在输入中找不到为字段 'S.$' 指定的 JSONPath '$.data.baz'
我的备份计划是使用 lambda 来执行这种类型的操作,但我可以直接使用分putItem
步任务功能来完成吗?
我想知道是否:
- 可以通过 JSONPath 以某种方式将我的整个
$.data
项目注入“项目”属性,例如:
或
2) 定义 baz 属性是可选的
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 代码以产生所需的结果?
amazon-web-services - AWS Step Function 没有落入 catch 块
我正在运行一个具有映射状态的状态机,并且该映射迭代触发其他状态机的任务类型的项目。现在,当子状态机失败时,即使我为任何类型的错误配置了通配符(States.ALL),父状态机也不会捕获错误。我究竟做错了什么?如何从子状态机捕获错误?