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

amazon-web-services - 如何使用 API 网关调用 AWS 步骤函数?

根据亚马逊的文档,可以使用 HTTP API 调用 step 函数。

Step Functions 可以通过 Step Functions 控制台、AWS 开发工具包或 HTTP API 访问和使用。

我试图搜索详细信息,但似乎找不到任何好的信息。有谁知道如何使用 API 网关调用 AWS step 函数,类似于它调用 Lambda 函数的方式?

0 投票
4 回答
5591 浏览

amazon-web-services - 我如何通过 API Gateway 调用 AWS Step Functions?

我想知道如何让 API Gateway 调用 Step Function 并执行它。

0 投票
7 回答
34030 浏览

aws-lambda - AWS Step Function - 等到一个事件

我有一个用例,其中我有一个 AWS Step 函数,该函数在文件上传到 S3 时触发,从那里第一步运行 ffprobe 以从外部服务(例如 transloadit)获取文件的持续时间,输出被写入回到 S3。

我可以从该事件中创建一个新的步进函数,但我正在徘徊,如果可以在原始步进函数中有一个 Await 承诺,然后继续下一个 - 考虑到 ffprobe 可能需要更长的时间才能恢复。

任何关于如何解决这个问题的建议都非常感谢。

0 投票
2 回答
839 浏览

amazon-web-services - 如何使用 Http 请求调用 aws step 函数?

我创建了一个步进函数,并尝试使用 HTTP 请求调用它。我正在使用 Postman 生成授权签名,但收到 403:forbidden 响应。

看来我无权调用 step 函数。但是在策略文件中,我已授予给定角色的用户访问权限:

请帮我设置一下?

0 投票
3 回答
4084 浏览

node.js - 如何使用 serverless-step-functions 插件中的定义调​​用 AWS Step Function?

我正在使用无服务器框架来创建我的 Lambda 函数,并使用无服务器步骤函数插件来定义我的步骤函数。

是否可以使用 serverless.yml 文件中定义的名称直接从 lambda 函数之一调用 step 函数?

0 投票
1 回答
1950 浏览

mysql - AWS Step Function 的操作 startExecution 未在 mysql .query() 回调上启动

我希望能够使用 mysql 查询的结果开始执行步进函数,但我无法让它工作。

我在运行nodejs 4.3mysql package的lambda上使用AWS-SDK

我使用 AWS-SDK 轻松地开始执行 step-function,并将其包装在一个函数中:

在下调用startExecution()

完美运行。

但是,在 mysql 的 connection.query 的回调函数中调用相同的startExecution()不起作用:

使用 console.log() 跟踪代码显示该行:

好像它被跳过了。

您的帮助将不胜感激!

非常感谢..

0 投票
3 回答
1788 浏览

aws-step-functions - 如何编辑现有状态机(Step-Function)?

这听起来很基础,但我如何编辑现有的状态机?

目前我所做的是使用以前版本的代码从头开始创建一个新的,这显然是荒谬的。

谢谢

0 投票
1 回答
839 浏览

amazon-web-services - AWS StepFunctions 的终端节点 URL 是什么?

该文档因此定义了endpoint

endpoint (String) — 发送请求的端点 URI。默认端点是从配置的region. 端点应该是一个字符串,如'https://{service}.{region}.amazonaws.com'.

我相信服务名称是StepFunctions并且我正在使用该区域us-east-1,因此 url 应该是:

但是,这似乎不对,该服务的实际端点 url 是什么?

编辑:(答案)

0 投票
1 回答
1288 浏览

amazon-web-services - 调用 AWS API 时如何防止 API 节流?

我正在使用 AWS API 来调用 AWS Step Functions。但是,您可以调用的函数数量是有限的。

根据 AWS Step Function 限制,某些 Step Functions API 操作使用令牌桶方案进行限制,以维持服务带宽。

例如,StartExecution()桶大小为 100,再填充率为 2/秒。

那么,有没有办法监控存储桶中的可用插槽?

我查看了 AWS python API,它被称为boto3,似乎没有办法获取此信息。但我不确定。

多余的电话会发生什么,他们在排队吗?或只是丢弃?

0 投票
2 回答
626 浏览

amazon-web-services - 管理“动态”AWS Lambda 工作流程

假设我有一个名为“TestExecutor”的 Lambda 函数,它接受一个参数,该参数包含 N 个“测试”的 ARN,这些 ARN 也作为 Lambda 函数实现。

工作流程:

  1. 使用各种“测试”的 ARN 列表调用 TestExecutor
  2. TestExecutor 并发调用每个Test;每个 Lambda 都应该返回一个 JSON
  3. TestExecutor 等待每个测试完成。它整合了所有收到的 JSON
  4. 合并的 JSON 存储在 DynamoDB/S3 中

问题陈述 - 以无服务器方式创建这种工作流的最佳方式是什么?

我考虑了两个 AWS 服务来管理这个:

  1. AWS Step Functions - 我的 step 函数需要可以执行的每个可能的“测试”Lambda 的状态。我想让用户灵活地调用任何 Lambda,而无需在我的 Step 函数中“注册”它。
  2. AWS SWF - 似乎有点矫枉过正。也遇到与上述相同的问题。

所以现在我能想到的最好的方法就是以一种简单的方式做到这一点:

在我的 TestExecutor Lambda 中,我可以为 N 个测试创建 N 个线程,每个线程调用一个特定的 Test 的 Lambda 函数。每个线程都等待其 Test 返回 JSON。由于所有执行都成功,所有 JSON 都被合并。合并的 JSON 存储在 DynamoDB 中。

我对这个解决方案不满意 - 从 TestExecutor Lambda 中手动管理测试 Lambda 的失败和重试会有点棘手。这是我第一次尝试无服务器,但这似乎是错误的模式。我想对我的工作流程有一个很好的自上而下的视图 - 似乎监控这会有点混乱和分散,因为 TestExecutor 和 Test Lambdas 之间没有正式的联系

也许我可以与每个测试 Lambda 一起创建一个 SQS 队列。对于提供给 TestExecutor 的每个 ARN,我可以将消息推送到相应的队列。但是现在呢?我必须为每个 T 秒轮询每个队列的每个测试创建“侦听器”Lambda。然后它将调用实际的测试 Lambda。这听起来也很复杂。

很想听听一些建议!干杯。