问题标签 [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.

0 投票
2 回答
11620 浏览

amazon-web-services - SerializationException:在未预期的位置找到结构或映射的开始:API 网关到 Step 函数

我正在使用标准博客教程将 api gateway 与 step 函数从这里集成: https ://docs.aws.amazon.com/step-functions/latest/dg/tutorial-api-gateway.html

我的步进函数需要以下输出:

如博客中所述,进行发布请求所需的请求正文是:

我正在传递我需要的输入,如下所示:

但是,我不断收到以下错误:

有人可以告诉我这里到底是什么问题吗?我在这里做错了什么?快速帮助表示赞赏。

0 投票
1 回答
423 浏览

amazon-web-services - 如何跨 aws 状态机重用状态定义?

我有一个像下面这样的状态机。如果它有 1000 条消息要通知,它会将通知分散到 15 分钟内。

现在,如果我有一个具有完全相同状态流但具有自己的一组 lambda 的 TwoHourStateMachine,我将如何重用这些状态,以便不再重复定义?

状态机:

0 投票
1 回答
635 浏览

amazon-s3 - 在事务中更新到 Redshift

我对整个 Lambda、AWS、步进函数和 Redshift 非常陌生。但我想我已经指出了一个让我去调查的问题。

step 函数调用 lambda 节点 js 代码来执行从 S3 到 Redshift 的复制。

相关步骤定义如下图

SQL 语句(在 CopyFiles 活动中使用)被包装在事务中

当我同时通过多个文件(50)时,所有步骤功能都挂起(继续运行直到我中止),请看截图在此处输入图像描述。如果我输入一个文件,那么它工作正常。

不再返回任何内容。但是,阶跃函数仍显示为“正在运行”。

任何人都请告诉我我需要做什么才能让这个工作?谢谢蒂姆

0 投票
1 回答
2742 浏览

amazon-web-services - 迭代 AWS Step Functions 中先前状态的结果

我需要使用“AWS Step Functions”开发一个“状态机”来完成以下任务:

  1. 调用将连接到 DynamoDb 并检索行列表的 Lambda 函数。(我知道该怎么做。)
  2. 对于上一步中的每一行,我需要调用另一个 Lambda 函数,直到读取所有行。

如何在 AWS Step Functions 中执行上述第 2 步?换句话说,我如何迭代上一步的结果。

0 投票
1 回答
2685 浏览

python - Aws Step 函数并行状态

当步进函数的并行状态完成时,假设它们都产生值数组,最终输出中的顺序是否得到保证,有没有办法拆分它,以便我知道哪一组值来自一个并行任务?

0 投票
1 回答
257 浏览

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 请求时,我在输入为 的状态机中得到了新的执行{}

0 投票
1 回答
289 浏览

amazon-s3 - 步进功能可以在静态网站上等待吗?

如果我部署一个带有 s3 和 api 网关的静态网站,有没有办法让 step 函数等待一些活动,然后将该静态网站上的用户重定向到另一个?

0 投票
1 回答
2386 浏览

aws-step-functions - 具有多次执行的 AWS Step Functions

我有以下内容Step Function

在此处输入图像描述

Step Function会接收 Lambda 的动态输入数据,因此它足够灵活,可以用于不同目的的调用。

我可能有一些Executions等待 1 小时,另一些等待 3 小时,依此类推。

假设我将有 5,000 次相同 Step Function 的运行执行。每个执行都有自己独特的“名称”。然后我停止执行然后我得到以下状态:

在此处输入图像描述

是否可以使用中止执行的相同“名称”创建新的执行?或者是否可以重新启动中止的执行?或者这不是一个好习惯?

另一个问题是:

当执行停止(中止)时,它只会产生它执行的状态的成本,直到它被中止,所以在 AWS 账单中不会产生额外的成本,对吗?

最后一个问题是:

是关于 1,000,000 次公开处决的限制... 在此处输入图像描述

打开执行等于运行执行?因此,例如,如果我有 10 个正在运行的执行g,然后我中止了其中的 5 个,那么我只有 5 个“打开”执行?

0 投票
4 回答
3910 浏览

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。

你对此有什么想法?随意发表评论。任何建议将不胜感激。

0 投票
1 回答
2790 浏览

throttling - 在 AWS Step Functions 上设置自定义执行速率限制

我有一个生成 Lambda 函数的 Step 函数设置。Lambda 函数的生成速度过快并导致其他服务受到限制,因此我希望 Step 函数对其在给定时间启动的作业数量有一个速率限制。

我如何最好地解决这个问题?