我编写了许多Lambda函数,这些函数通过API网关公开为Rest端点。我选择了“ Lambda代理集成”,因为它似乎是一种入门的直接方法。
现在,我想通过AWS Step Functions将其中两个功能链接在一起。除了如何为每个任务创建适当的输入之外,常规的集成和配置都可以正常工作。
使用控制台,我可以启动执行并提供以下JSON:
{
"headers": {
"Authorization": "Bearer 12345"
},
"body": "\"some\": \"json\"",
"queryParameters: {
"more": "here"
}
}
这是我Lambda函数输入的样子,因为我在各处都使用Lambda代理集成。
输出看起来像这样:
{
"isBase64Encoded": false,
"statusCode": 200,
"headers": {
"Access-Control-Allow-Origin": "*"
},
"body": "{\"message\":\"Great\"}"
}
这也是很好的独立工具,API网关将这些信息映射回正确的HTTP返回代码和响应以及所有信息。
现在:使用“步函数”时如何创建这些输入JSON。当然,使用控制台很容易就可以进行第一个输入。但是,如何创建下一个输入并混入上一个输出的一部分?要点中的一些问题:
我想知道Step Functions是否真的不能与为Lambda代理集成构建的Lambda一起使用。是这样吗人们如何在不遇到这些问题的情况下使用步进功能?
答案 0 :(得分:0)
Step函数被设计为直接与lambda集成,而不是通过api网关集成,这就是Step函数不能处理它的原因,这是Jain自然逃脱的原因。
如果您想同时通过api网关和step函数访问lambda代码,我建议您执行以下操作: 将lambda代码逻辑分为两部分,即核心逻辑和核心逻辑的包装程序,它们基本上执行从主体中提取字段并对其进行转义的功能。这样,您的api网关可以调用包装器lambda,而step函数可以调用核心逻辑lambda。通过这种设计,您将能够实现自己的目标。此外,您可以将lambda定义为一个cfn和代码包的一部分,这将有助于轻松维护。
我希望这能回答您的问题。
谢谢