带有从 Kinesis 触发的 Lambda 的 Amazon Step Function
Amazon Step Function with a Lambda that takes trigger from Kinesis
所以我正在尝试在 Amazon AWS 中创建一个简单的管道。我想使用触发状态机第一个 lambda 的流生成的数据执行步进函数
我想做的就是关注
输入数据由 AWS Kinesis 流式传输
此 Kinesis 流用作执行并写入 S3 存储桶的 lambda1 的触发器。
这会触发(使用 step 函数)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 作为输入,但这不是我正在寻找的工作流程
你错误地启动了状态机。
您需要添加另一个 Starter Lambda 函数以使用 SDK 调用状态机。过程是这样的:
kinesis -> starter(lambda) -> StateMachine(启动 Lambda 1 和 Lambda 2)
使用Step Function的问题是缺少触发器。只有 3 个触发器是 CloudWatch Events、SDK 或 API Gateway。
所以我正在尝试在 Amazon AWS 中创建一个简单的管道。我想使用触发状态机第一个 lambda 的流生成的数据执行步进函数
我想做的就是关注
输入数据由 AWS Kinesis 流式传输
此 Kinesis 流用作执行并写入 S3 存储桶的 lambda1 的触发器。
这会触发(使用 step 函数)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 作为输入,但这不是我正在寻找的工作流程
你错误地启动了状态机。
您需要添加另一个 Starter Lambda 函数以使用 SDK 调用状态机。过程是这样的:
kinesis -> starter(lambda) -> StateMachine(启动 Lambda 1 和 Lambda 2)
使用Step Function的问题是缺少触发器。只有 3 个触发器是 CloudWatch Events、SDK 或 API Gateway。