gpt4 book ai didi

amazon-web-services - 使用 vendia serverless-express 的 lambda 可以成为状态机中的一个步骤吗?

转载 作者:行者123 更新时间:2023-12-04 13:52:53 24 4
gpt4 key购买 nike

我有一个使用 vendia serveless-express 的 lambda 设置作为处理者。从具有多个路由的单个 lambda 函数为 REST API 提供服务一直运行良好。
我现在有一个新要求,即相同的 lambda 需要成为阶跃函数状态机的一部分。但这似乎不被vendia应用程序允许,因为它总是抛出错误:“无法根据事件确定事件源”,因为它期望事件仅为api网关/alb。
因此,基于此,看起来我将需要一个单独的 lambda 来进行 step,这使我在多个 lambda 中有重复的代码。
lambda 是否有可能处理来自 step 的输入并且仍然是一个 vendia express 应用程序?如果我正在尝试一些毫无意义的东西,请告诉我。

最佳答案

如果我是你,我会实现我自己的转换器,将 StepFunction 事件转换为 API 网关事件,然后在你的 lambda 中调用 express-serverless。
包裹aws-lambda包含许多 AWS 事件(包括那些事件)的 TypeScript 定义,然后尝试从您自己的 step 函数事件值生成模拟 API 网关事件。从源(4.3.9)我们有函数:

function getEventSourceNameBasedOnEvent ({
event
}) {
if (event.requestContext && event.requestContext.elb) return 'AWS_ALB'
if (event.Records) return 'AWS_LAMBDA_EDGE'
if (event.requestContext) {
return event.version === '2.0' ? 'AWS_API_GATEWAY_V2' : 'AWS_API_GATEWAY_V1'
}

throw new Error('Unable to determine event source based on event.')
}
因此,可能要使其正常工作,您必须在模拟事件中定义一个 RequestContext 模拟值,这应该就足够了。

关于amazon-web-services - 使用 vendia serverless-express 的 lambda 可以成为状态机中的一个步骤吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67466762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com