问题标签 [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 回答
1457 浏览

amazon-web-services - 如何使用 CloudWatch 规则触发部署 StepFunciton?

如何使用 CloudWatch 规则触发部署 StepFunciton?

无服务器工具有无服务器步骤功能插件,但尚不支持 CloudWatch 事件。

如果可以通过 CloudFormation 部署这样的管道,您能否提供一些示例 CF 模板和 bash 命令。

0 投票
4 回答
19810 浏览

amazon-web-services - 如何在 AWS Step Functions 中指定多个结果路径值

我有一个格式如下的 AWS Step Function State:

我想添加第二个值,但在任何地方都找不到。AWS 示例均未显示添加到输出的多个 ResultPath 值。

我可以在它们之间添加一个逗号吗?

或者有没有更好的方法来格式化这些?

0 投票
1 回答
90 浏览

amazon-web-services - 什么是创建无服务器应用程序的“逻辑粘合剂”的优雅方式

我需要实现以下逻辑:

  1. 具有多个(高级未知)页面的 PDF 被上传并保存到 S3
  2. 页面图像通过 lambda 函数从 pdf 中提取并保存到 S3。
  3. 每个图像都由 lambda 函数(同时)分析。结果保存到 S3 或发电机。
  4. 分析完所有图像后,运行最终的单个 lambda 组合所有结果。

我的主要问题之一是如何在步骤 3 的所有并发 lambda 完成时触发。实现这一目标的最佳、最优雅的方式是什么?我有建议尝试使用 AWS step 功能,但似乎 Parallel 状态只能有固定数量,提前知道分支。

0 投票
1 回答
1789 浏览

amazon-web-services - 为什么我的 Lambda 函数没有在 AWS 状态机上开始执行?

我已经设置了一个 AWS Step Function 状态机,它链接了 3 个 lambda 函数,并且在我手动创建执行时运行得非常好。我创建了第四个 lambda 函数来从 API Gateway 获取输入,将我想要的内容传递给 Step Function 并开始新的执行。

我相信我已经遵循了我可以在网上找到的所有建议,但无论我尝试了什么,Lambda 函数似乎总是超时(无论是从 API Gateway 调用还是自行测试),我得到了CloudWatch 中没有任何错误可言,即使我已将 console.log 行移至函数中的几乎每个点。似乎该stepfunctions.StartExecution行实际上从未被调用过,但该函数也从未返回(无论回调是否在 stepfunction 块内),所以我只能用头撞桌子。

这是 Lambda 函数:

此外,Lambda IAM 角色拥有对 AWS Step Functions 的完全访问权限,因此我认为那里没有问题。

0 投票
1 回答
379 浏览

amazon-web-services - 如何确定是否已达到 StartExecution 限制

我目前正在通过 AWS Step Functions 运行状态机,我们的流量很大。我注意到 StartExecution API 请求在存储桶中限制为 100 次,每秒重新填充 2 次。但是,我似乎无法从任何 CloudWatch 指标中确定是否已达到此限制。基于我们可能已经达到的绝对数量,但我更希望看到受限制的 API 请求的计数或列表。

有没有明确的方法来获取这些数据?

0 投票
1 回答
1931 浏览

amazon-web-services - AWS Step Functions:关于 Lambda 异常,获取原始输入?

设置

我有一个 AWS 状态机。我有一个可能返回结果或抛出异常的 Lambda。该步骤定义了一个 catch 块,并且根据异常的类型,遵循不同的执行路径。

问题

但是,我想存储失败的 Lambda 的输入,以便以后可以重新应用。

失败的 Lambda 的输出是例外。

我试过的

例外时,添加 OutputPath 和 ResultPath 不适用。

我真的不想总是抛出自定义异常并附加 json 输入,然后解析异常消息。

我尝试使用 Parallel,将输入发送到我的 Lambda 和 Pass。结果是一个包含 Lambda 输出(成功输出或异常)和原始输入的数组。但是,现在我需要添加一个选项来检查是否有异常,然后要么继续成功输出,要么使用原始输入分支。我似乎无法在选项中定义 JsonPath 来检查数组的第一个元素中是否存在“错误”。

0 投票
2 回答
548 浏览

node.js - 在 Amazon 云上运行 SWF Decider 和 Worker 的最佳实践是什么?

我已经使用“Node.js”创建了 AWS SWF workers\Decider,我可以在我的机器上运行,您能否建议在亚马逊后台部署和运行 SWF\Worker\Decider 的最佳实践。

0 投票
1 回答
3490 浏览

amazon-web-services - 如何参考 AWS step function 并行任务输出?

我在包含两个分支的 step 函数中有一个并行任务。输入是:

每个分支都返回一个 json 结果,如下所示

分支 1(我使用“OutputPath”:“$”):

分支 2(我使用“ResultPath”:“$.approvalStatus”):

当两个分支都完成时,并行任务的输出返回:

下一个任务是选择,

它不断给我以下错误:

所以这是我的问题,

1)我应该如何在选择任务中引用它来获得approvalStatus价值?

2)无论如何我可以让并行任务以json格式而不是数组返回?

提前致谢

0 投票
2 回答
464 浏览

amazon-web-services - 如何从 API Gateway 调用 AWS 简单工作流 (SWF)

我正在设计一个应该从 API 网关调用的工作流,因为它是一个平台服务,所有用户身份验证和 API 身份验证都由 API 网关处理,我首先考虑使用步进函数,但节流限制仅为每秒 2 个,这还不够我的用例。现在我正在考虑使用节流限制更好的简单工作流程,但我找不到任何显示 API 网关可以像 Stpe 函数一样直接调用 SWF 的文档。鉴于 SWF 支持 HTTP 请求,通过 API 网关调用 SWF StartWorkflowExecution 的最佳方式是什么?

0 投票
1 回答
864 浏览

amazon-web-services - 如何接收来自 AWS S3 触发的 lambda 函数的响应?

我目前有一个设置,我的移动前端执行 AWS s3 上传图像。s3 上传会触发一个 AWS lambda 函数,该函数启动一个执行各种作业和操作的 AWS 步进函数(状态机)。

我正在寻找最好的(也是最省时的)方法来将步进函数结束时的输出返回到移动设备。

一种方法是监视executionARN状态机,并在完成后获取数据。这似乎是 awslabs lambda-refarch-imagerecognition implementation here的情况。但是,我的前端是在移动设备上,我宁愿不必发送和接收许多请求来检查状态机是否完成。

另一种可能的解决方案是重构流程,使 s3 上传成为独立事件,一旦成功,就向触发 step-function 的 AWS API 网关发出 API 请求。然后 API POST 请求将返回响应。这里的问题是应用程序必须等待 s3 响应才能继续启动状态机。

有没有更好的方法来执行这个序列并接收响应。理想情况下,s3 上传将返回来自状态机的完整响应。这样就有一个请求(图像上传)和一个响应。