问题标签 [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 投票
1 回答
370 浏览

amazon-web-services - AWS StepFunton 执行Arn 格式

如果我运行StartExecution指定可选参数name(执行的名称。)

我可以得到executionArn如下吗?

我知道我可以得到 theexecutionArn的响应,StartExecution但我想将executionArn作为输入传递给我的执行。

0 投票
3 回答
8258 浏览

amazon-web-services - 在 AWS Step Functions 中将输入传递到输出

如何将输入传递到TaskAWS Step Functions 中的状态到输出?

在阅读了AWS 文档中的输入和输出处理页面后,我尝试了各种InputPath,ResultPathOutputPath.

状态定义:

输入:

预期结果

我希望First State(以及因此的输入Second State)的输出是

实际结果


如果输入更复杂怎么办,例如

我想转发所有这些而不用担心(子)路径。

0 投票
1 回答
41 浏览

amazon-web-services - 关于将照片上传到 AWS

我正在 AWS DynamoDB 上开发软件。我有一些 UIImages。应该在哪里上传?S3?

我尝试使用 S3,但它说它需要我的照片成为捆绑资源。但我得到的是一个 UIImage。

如何将 UIImagge 转换为 NSBUNDLE?

0 投票
2 回答
483 浏览

javascript - 编排 AWS lambda 函数

背景

我有一个 API Gateway 端点,它代理 Lambda 函数 (Lambda A),供我的 React 应用程序获取客户数据。

这个 lambda 函数调用 API 来获取客户数据,但是响应的格式还有很多不足之处。所以我想重新格式化它。

我没有将这种重新格式化的逻辑填充到 Lambda A 中,而是编写了一个单独的 Lambda 函数 (Lambda B)。当我的 API Gateway 端点被命中时,我需要调用这两个函数,并且第一个的输出是第二个的输入。

第一个想法:阶梯函数

阶跃函数看起来很自然,但可以在阶段之间传递的数据有效负载的大小有 32kb 的限制。我们的客户数据 json blob 经常超过这个值。

对于这种情况,我听说的唯一“最佳实践”是将有效负载写入 S3,然后将对象密钥传递到下一阶段。

这很好,但我对不得不向 S3 写入和删除这么多短暂的对象并不感到兴奋。每天可能有数十或数十万个这样的请求。所以我放弃了阶梯函数方法(现在)。

当前方法

我目前正在使用 javascript SDK 直接从 Lambda A 调用 Lambda B。这有相当多的缺点。值得注意的是,我有时会同时运行两个 lambda,而没有性能优势。换句话说,我付钱让 Lambda A 坐在那里等待来自 Lambda B 的响应(我也为此付费)。

这感觉像是一种反模式,我听说它是​​这样描述的。

问题

这似乎是一个相对常见的场景 - 进行 API 调用(函数 A),然后执行一些额外的逻辑来补充、重新格式化或以其他方式修改该响应(函数 B),然后将其传递回调用者。

当然,我不是第一个想要使用两个 Lambda 函数来做这样的事情的人。

  • 假设我不能使用阶跃函数,我有什么选择可以使用两个 lambda 函数?

  • 除了使用 S3 之外,还有其他方法可以解决 Step Functions 的 32kb 有效负载大小限制吗?

  • 如果我因为想要避免 S3/Step Function 方法而感到愚蠢,那么解释为什么我的担忧没有根据的答案也将受到欢迎。

编辑

为什么您甚至考虑将获取数据和处理数据的功能拆分为两个不同的 AWS Lambda 函数?

想象一下,我有两打 Lambda 需要使用 Lambda B 的功能,而不仅仅是 Lambda A。

因此,我将 Lambda B(的功能)打包,发布到 Nexus,而我的另外两打 Lambda 都在构建时使用它。我所有的 lambdas 的大小都在膨胀,当我积累更多的“Lambda B”时,我必须发布更多的 npm 包。这是我想要避免的。

我希望我的“Lambda A”使用其他 lambda,而不是 npm 包,以实现广泛共享的功能。也许我在字面上理解“lambda 函数”中的“函数”,或者我只是想充分利用 FaaS 的潜力。

0 投票
1 回答
461 浏览

java - 获取所有状态机及其名称和 ARN

我想围绕我们目前拥有的阶梯函数创建一些指标。我能够使用 python 制作该列表,但由于某种原因,我们仅限于在我们公司使用 java。

我想要

列出在当前区域为给定帐户定义的所有状态机。在python中,我能够使用

然后,我想列出Tasks该给定状态机的所有内容并获取一些指标。

在 Java 中,我找不到可以提供所有状态机的 API 参考。我正在查看http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/index.html?com/amazonaws/services/stepfunctions/model/ListStateMachinesRequest.html API 但没有帮助。

0 投票
1 回答
525 浏览

serverless-framework - 如何向阶梯函数端点的用户呈现 HTML?

我正在使用无服务器和https://github.com/horike37/serverless-step-functions来尝试实现一个用户点击的系统,根据提供的参数的数据库条目返回 HTML,然后移动到写入数据库的第二个函数(不强制用户等待)。

我认为正确方法中的 step 函数,但我似乎无法让它返回 HTML - 它总是返回带有executionArnand的 JSON 正文startDate。例如

是否可以让我的 html 正文返回?目前我的 lambda 函数返回一个简单的 h1 标签:

这是我要创建的状态机。

在此处输入图像描述

0 投票
1 回答
1721 浏览

amazon-web-services - 如何将输入传递给多个 ARN(aws 阶跃函数)?

我试图弄清楚如何将多个输入传递给我的 ARN。但是,我似乎无法做到这一点。

以下是我的机器规格

这是我的输入

执行此任务时。它成功检索了我的 demostate1 数据,但它似乎看不到 demostate2,就像我在“TaskStateEntered”步骤中看到的那样。

0 投票
1 回答
396 浏览

amazon-web-services - 用于在 AWS Step Function `ExecutionsFailed` 时创建规则/触发器 (CloudWatch-Lambda) 的事件模式

当我的 AWS Step Functions 的状态机失败ExecutionsFailed时,我想触发一个 lambda 函数来响应它。

似乎您必须在 CloudWatch 上创建规则;但我找不到关于如何做到这一点的描述(特别是事件模式应该是什么样子)。

ps 在我的情况下,它是由于超过 25,000 个历史限制而发生的(因此在状态机中处理起来不太容易;无需添加循环计数器等;所以我希望它失败;然后通过 lambda 处理)

0 投票
1 回答
6356 浏览

node.js - 使用选择状态的 AWS Step Function 没有达到所有任务状态

我想按第一个调用的顺序调用函数,然后是第二个,第三个,第四个,然后结束。

我在 AWS 管理控制台中使用选择示例。

为什么第三个和第四个呼叫没有被击中?

AWS Step 函数代码 (JSON)

在此处输入图像描述

0 投票
1 回答
3524 浏览

amazon-web-services - 与 AWS Step Functions 通信时出错

我试图按照文档中指定的说明使用 AWS Step 函数(https://docs.aws.amazon.com/step-functions/latest/dg/getting-started.html)。在尝试创建状态机时,我收到以下错误消息。 “与 AWS Step Functions 通信时出错,请稍后重试。”

我正在欧盟爱尔兰地区执行阶梯函数。我按照链接中提到的说明创建了一个角色(https://docs.aws.amazon.com/step-functions/latest/dg/procedure-create-iam-role.html)。还尝试使用策略“AdministratorAccess”更新角色定义,假设该角色没有创建状态机所需的权限,这也无济于事。

你能帮我解决这个问题吗?

谢谢!