【问题标题】:Amazon Step Function with a Lambda that takes trigger from Kinesis带有从 Kinesis 触发的 Lambda 的 Amazon Step Function
【发布时间】:2017-08-19 19:27:13
【问题描述】:

所以我试图在 Amazon AWS 中创建一个简单的管道。我想使用触发状态机的第一个 lambda 的流生成的数据执行步进函数

我想做的是跟随。

输入数据由 AWS Kinesis 流式传输

此 Kinesis 流用作 lambda1 的触发器,该触发器执行并写入 S3 存储桶。

这将触发(使用阶跃函数)一个 lambda2,该 lambda2 将从给定存储桶中读取内容并将其写入另一个存储桶

现在我想使用 Amazon Step Function 实现一个状态机。我已经创建了非常简单的状态机

  {
  "Comment": "Linear step function test",
  "StartAt": "lambda1",
  "States": {
    "lambda1": {
      "Type": "Task",
      "Resource": "arn:....",
      "Next": "lambda2"
    },
    "lambda2": {
      "Type": "Task",
      "Resource": "arn:...",
       "End": true
        }  
    }
}

我想要的是,Kinesis 应该触发第一个 Lambda,一旦它执行,step 函数将执行 lambda 2。这似乎不会发生。即使我的 Lambda 1 从流中触发并写入 S3 存储桶,Step 函数也不会执行任何操作。我可以选择手动启动新的执行并将 JSON 作为输入传递,但这不是我正在寻找的工作流程

【问题讨论】:

    标签: amazon-s3 aws-lambda amazon-kinesis aws-step-functions


    【解决方案1】:

    你错误地启动了状态机。

    您需要添加另一个 Starter Lambda 函数才能使用 SDK 调用状态机。流程是这样的:

    kinesis -> starter(lambda) -> StateMachine(启动 Lambda 1 和 Lambda 2)

    使用 Step Function 的问题是缺少触发器。只有 3 个触发器是 CloudWatch Events、SDK 或 API Gateway。

    【讨论】:

    • 谢谢,我已经这样实现了,但我相信你的回答会帮助其他人
    • 您现在可以从 IoT 规则中触发阶跃函数。不知道还有没有其他新的触发器……
    猜你喜欢
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 2021-07-10
    • 1970-01-01
    • 2021-08-29
    • 2017-11-20
    相关资源
    最近更新 更多