问题标签 [aws-step-functions]
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 - SerializationException:在未预期的位置找到结构或映射的开始:API 网关到 Step 函数
我正在使用标准博客教程将 api gateway 与 step 函数从这里集成: https ://docs.aws.amazon.com/step-functions/latest/dg/tutorial-api-gateway.html
我的步进函数需要以下输出:
如博客中所述,进行发布请求所需的请求正文是:
我正在传递我需要的输入,如下所示:
但是,我不断收到以下错误:
有人可以告诉我这里到底是什么问题吗?我在这里做错了什么?快速帮助表示赞赏。
amazon-web-services - 如何跨 aws 状态机重用状态定义?
我有一个像下面这样的状态机。如果它有 1000 条消息要通知,它会将通知分散到 15 分钟内。
现在,如果我有一个具有完全相同状态流但具有自己的一组 lambda 的 TwoHourStateMachine,我将如何重用这些状态,以便不再重复定义?
状态机:
amazon-web-services - 迭代 AWS Step Functions 中先前状态的结果
我需要使用“AWS Step Functions”开发一个“状态机”来完成以下任务:
- 调用将连接到 DynamoDb 并检索行列表的 Lambda 函数。(我知道该怎么做。)
- 对于上一步中的每一行,我需要调用另一个 Lambda 函数,直到读取所有行。
如何在 AWS Step Functions 中执行上述第 2 步?换句话说,我如何迭代上一步的结果。
python - Aws Step 函数并行状态
当步进函数的并行状态完成时,假设它们都产生值数组,最终输出中的顺序是否得到保证,有没有办法拆分它,以便我知道哪一组值来自一个并行任务?
amazon-web-services - AWS Step 函数是否支持二进制数据?
我正在尝试通过使用 AWS Step 函数进行二进制数据处理来创建管道。
现在,我已经完成了AWS 博客中关于二进制支持 API 与 Amazon API Gateway 集成的分步指南,它似乎有效。
但是,当我更改 Resources > POST > Integration type > AWS Service on AWS Service: Step Functions
,添加操作、执行角色、添加到 Body Mapping TemplatesstateMachineArn
并发出新的 POST 请求时,我在输入为 的状态机中得到了新的执行{}
。
amazon-s3 - 步进功能可以在静态网站上等待吗?
如果我部署一个带有 s3 和 api 网关的静态网站,有没有办法让 step 函数等待一些活动,然后将该静态网站上的用户重定向到另一个?
aws-step-functions - 具有多次执行的 AWS Step Functions
我有以下内容Step Function
:
这Step Function
会接收 Lambda 的动态输入数据,因此它足够灵活,可以用于不同目的的调用。
我可能有一些Executions
等待 1 小时,另一些等待 3 小时,依此类推。
假设我将有 5,000 次相同 Step Function 的运行执行。每个执行都有自己独特的“名称”。然后我停止执行然后我得到以下状态:
是否可以使用中止执行的相同“名称”创建新的执行?或者是否可以重新启动中止的执行?或者这不是一个好习惯?
另一个问题是:
当执行停止(中止)时,它只会产生它执行的状态的成本,直到它被中止,所以在 AWS 账单中不会产生额外的成本,对吗?
最后一个问题是:
打开执行等于运行执行?因此,例如,如果我有 10 个正在运行的执行g,然后我中止了其中的 5 个,那么我只有 5 个“打开”执行?
amazon-web-services - 具有批处理限制的 AWS Step Functions
场景:必须处理一堆小尺寸(平均每个 50 字节)的记录(比如 10k,也许更多)。处理必须并行或以任何其他方式进行以提高性能(请记住,我们有很多记录要处理)。此外,处理本身是一项非常简单的任务(这是使用 AWS Lambda 的原因之一)。尽管它很简单,但某些处理可能在其他处理之前/之后结束,因此这是这些记录彼此独立并且处理顺序无关紧要的另一个原因。
到目前为止,Step Functions 看起来像是要走的路。
使用 Step Functions,我们可以得到下图:
我可以将 RecordsRetrieval 定义为一项任务。之后,这些记录将由任务 ProcessRecords-Task-1、ProcessRecords-Task-2 和 ProcessRecords-Task-3 并行处理。从表面上看,一切都很好,花花公子,对吧?错误的!
第一个问题:动态缩放如果我想动态缩放这些任务(比如说... 10、100、5k 或 10k),考虑到要处理的记录数量,我将不得不动态构建 json 以实现这一点(不是一个非常优雅的解决方案,但它可能会起作用)。我非常有信心任务的数量是有限的,所以我不能依赖它。如果扩展繁重的工作由基础设施而不是我来处理,那就更好了。
无论哪种方式,对于一组定义明确的并行任务,例如:GetAddress、GetPhoneNumber、GetWhatever... 都很棒!奇迹般有效!
第二个问题:Payload Dispatch 在 RecordsRetrieval 任务之后,我需要单独处理这些记录中的每一个。使用 Step Functions,我没有看到任何方法可以做到这一点。一旦 RecordsRetrieval 任务传递了它的有效负载(在这种情况下是那些记录),所有并行任务将处理相同的有效负载。
同样,就像我在第一个问题中所说的那样,对于一组定义明确的并行任务,这将是一个完美的选择。
结论 我认为,AWS Step Functions 可能不是我的场景的解决方案。这是我对此知识的总结,所以如果我确实遗漏了什么,请随时发表评论。
出于多种原因(可扩展性、无服务器、简单性等),我正在研究微服务方法。
我知道可以检索这些记录并一个接一个地发送到另一个 lambda,但同样,这不是一个非常优雅的解决方案。
我也知道这是一个批处理作业,AWS 有批处理服务。我想要做的是保持微服务方法而不依赖于 AWS Batch/EC2。
你对此有什么想法?随意发表评论。任何建议将不胜感激。
throttling - 在 AWS Step Functions 上设置自定义执行速率限制
我有一个生成 Lambda 函数的 Step 函数设置。Lambda 函数的生成速度过快并导致其他服务受到限制,因此我希望 Step 函数对其在给定时间启动的作业数量有一个速率限制。
我如何最好地解决这个问题?