问题标签 [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 - 如何使用 CloudWatch 规则触发部署 StepFunciton?
如何使用 CloudWatch 规则触发部署 StepFunciton?
无服务器工具有无服务器步骤功能插件,但尚不支持 CloudWatch 事件。
如果可以通过 CloudFormation 部署这样的管道,您能否提供一些示例 CF 模板和 bash 命令。
amazon-web-services - 如何在 AWS Step Functions 中指定多个结果路径值
我有一个格式如下的 AWS Step Function State:
我想添加第二个值,但在任何地方都找不到。AWS 示例均未显示添加到输出的多个 ResultPath 值。
我可以在它们之间添加一个逗号吗?
或者有没有更好的方法来格式化这些?
amazon-web-services - 什么是创建无服务器应用程序的“逻辑粘合剂”的优雅方式
我需要实现以下逻辑:
- 具有多个(高级未知)页面的 PDF 被上传并保存到 S3
- 页面图像通过 lambda 函数从 pdf 中提取并保存到 S3。
- 每个图像都由 lambda 函数(同时)分析。结果保存到 S3 或发电机。
- 分析完所有图像后,运行最终的单个 lambda 组合所有结果。
我的主要问题之一是如何在步骤 3 的所有并发 lambda 完成时触发。实现这一目标的最佳、最优雅的方式是什么?我有建议尝试使用 AWS step 功能,但似乎 Parallel 状态只能有固定数量,提前知道分支。
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 的完全访问权限,因此我认为那里没有问题。
amazon-web-services - 如何确定是否已达到 StartExecution 限制
我目前正在通过 AWS Step Functions 运行状态机,我们的流量很大。我注意到 StartExecution API 请求在存储桶中限制为 100 次,每秒重新填充 2 次。但是,我似乎无法从任何 CloudWatch 指标中确定是否已达到此限制。基于我们可能已经达到的绝对数量,但我更希望看到受限制的 API 请求的计数或列表。
有没有明确的方法来获取这些数据?
amazon-web-services - AWS Step Functions:关于 Lambda 异常,获取原始输入?
设置
我有一个 AWS 状态机。我有一个可能返回结果或抛出异常的 Lambda。该步骤定义了一个 catch 块,并且根据异常的类型,遵循不同的执行路径。
问题
但是,我想存储失败的 Lambda 的输入,以便以后可以重新应用。
失败的 Lambda 的输出是例外。
我试过的
例外时,添加 OutputPath 和 ResultPath 不适用。
我真的不想总是抛出自定义异常并附加 json 输入,然后解析异常消息。
我尝试使用 Parallel,将输入发送到我的 Lambda 和 Pass。结果是一个包含 Lambda 输出(成功输出或异常)和原始输入的数组。但是,现在我需要添加一个选项来检查是否有异常,然后要么继续成功输出,要么使用原始输入分支。我似乎无法在选项中定义 JsonPath 来检查数组的第一个元素中是否存在“错误”。
node.js - 在 Amazon 云上运行 SWF Decider 和 Worker 的最佳实践是什么?
我已经使用“Node.js”创建了 AWS SWF workers\Decider,我可以在我的机器上运行,您能否建议在亚马逊后台部署和运行 SWF\Worker\Decider 的最佳实践。
amazon-web-services - 如何参考 AWS step function 并行任务输出?
我在包含两个分支的 step 函数中有一个并行任务。输入是:
每个分支都返回一个 json 结果,如下所示
分支 1(我使用“OutputPath”:“$”):
分支 2(我使用“ResultPath”:“$.approvalStatus”):
当两个分支都完成时,并行任务的输出返回:
下一个任务是选择,
它不断给我以下错误:
所以这是我的问题,
1)我应该如何在选择任务中引用它来获得approvalStatus
价值?
2)无论如何我可以让并行任务以json格式而不是数组返回?
提前致谢
amazon-web-services - 如何从 API Gateway 调用 AWS 简单工作流 (SWF)
我正在设计一个应该从 API 网关调用的工作流,因为它是一个平台服务,所有用户身份验证和 API 身份验证都由 API 网关处理,我首先考虑使用步进函数,但节流限制仅为每秒 2 个,这还不够我的用例。现在我正在考虑使用节流限制更好的简单工作流程,但我找不到任何显示 API 网关可以像 Stpe 函数一样直接调用 SWF 的文档。鉴于 SWF 支持 HTTP 请求,通过 API 网关调用 SWF StartWorkflowExecution 的最佳方式是什么?
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 上传将返回来自状态机的完整响应。这样就有一个请求(图像上传)和一个响应。