我有2个Lambda函数——一个生成报价,一个将报价转换为订单。 我希望Order lambda函数调用Quote函数来重新生成报价,而不是仅仅从不受信任的客户端接收报价。
我已经看遍了我能想到的所有地方——但不知道我该如何链接或调用函数……这当然存在!
我有2个Lambda函数——一个生成报价,一个将报价转换为订单。 我希望Order lambda函数调用Quote函数来重新生成报价,而不是仅仅从不受信任的客户端接收报价。
我已经看遍了我能想到的所有地方——但不知道我该如何链接或调用函数……这当然存在!
当前回答
您可以直接调用lambda函数(至少通过Java),方法是使用AWS博客文章中描述的AWSLambdaClient。
其他回答
我正在使用blueskin提供的答案,但我无法读取有效负载响应,因为InvocationType='Event'是异步的,所以我更改为InvocationType='RequestResponse',现在一切正常。
有很多答案,但没有一个是强调调用另一个lambda函数不是同步调用的推荐解决方案,你应该使用的是真正的步骤函数
不建议解决的原因:
当两个函数相互等待时,你为它们支付了费用 你的代码负责重试
您还可以将它用于相当复杂的逻辑,例如并行步骤和捕获失败。每次执行都被注销,这使得调试更加简单。
您可以直接调用lambda函数(至少通过Java),方法是使用AWS博客文章中描述的AWSLambdaClient。
因为这个问题,亚马逊发布了Step Functions (https://aws.amazon.com/step-functions/)。
AWS Lambda背后的核心原则之一是,您可以更多地关注业务逻辑,而不是将它们联系在一起的应用程序逻辑。步骤函数允许您编排函数之间的复杂交互,而无需编写代码。
其他人指出使用SQS和步骤函数。但这两种解决方案都增加了额外的成本。阶跃函数的状态转换应该是非常昂贵的。
AWS lambda提供了一些重试逻辑。它尝试某件事3次。我不确定当你使用API触发它时,它是否仍然有效。