最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

aws api网关如何监听2个lambda函数?

IT培训 admin 7浏览 0评论

aws api网关如何监听2个lambda函数?

我的设计是api会触发第一个lambda函数,这个函数然后发送sns并返回,sns触发第二个lambda函数。现在我希望api从第二个lambda函数得到响应。

这是流程:api从用户获取请求然后触发第一个lambda函数,第一个lambda函数创建一个sns并返回。现在api处于lambda函数阶段,仍在等待第二个lambda的响应。 sns触发第二个lambda函数;第二个lambda函数返回一些结果并将其传递给api。 api获得响应并将其发送回用户。

我知道有一种方法可以使用sdk获取第二个lambda函数并设置事件类型以使其成为异步。但在这里我想使用sns,这可能吗?

需要一些帮助/建议。提前致谢!

回答如下:

你需要一些东西来与lambda_func_1共享lambda_func_2的返回,只有当你在func1上调用callback时才会返回api网关请求上下文,你无法保存或发送request contex到另一个lb_func。我对这种情况的解决方案是使用Dynamodb(或每个数据库)来共享f2的结果。

F1将数据发送到sns,日期包括像transactionID(uuid或timestamp)这样的密钥。然后“等待”直到F1收到表中的结果(例如:tbl_f2_result)并执行带有结果的callback函数。也许用transactionID查询,直到你收到数据或只尝试10次(一次超时2s,最坏的情况下你会等待20秒)

F2被SNS触发,用数据包括transactionID,然后用tbl_f2_result => transactionID将结果(成功与否,错误信息......)插入结果表(result),回调结束F2。

transactionID是表的索引键:D

你必须增加F1的超时 - 默认是6秒。

aws api网关如何监听2个lambda函数?

我的设计是api会触发第一个lambda函数,这个函数然后发送sns并返回,sns触发第二个lambda函数。现在我希望api从第二个lambda函数得到响应。

这是流程:api从用户获取请求然后触发第一个lambda函数,第一个lambda函数创建一个sns并返回。现在api处于lambda函数阶段,仍在等待第二个lambda的响应。 sns触发第二个lambda函数;第二个lambda函数返回一些结果并将其传递给api。 api获得响应并将其发送回用户。

我知道有一种方法可以使用sdk获取第二个lambda函数并设置事件类型以使其成为异步。但在这里我想使用sns,这可能吗?

需要一些帮助/建议。提前致谢!

回答如下:

你需要一些东西来与lambda_func_1共享lambda_func_2的返回,只有当你在func1上调用callback时才会返回api网关请求上下文,你无法保存或发送request contex到另一个lb_func。我对这种情况的解决方案是使用Dynamodb(或每个数据库)来共享f2的结果。

F1将数据发送到sns,日期包括像transactionID(uuid或timestamp)这样的密钥。然后“等待”直到F1收到表中的结果(例如:tbl_f2_result)并执行带有结果的callback函数。也许用transactionID查询,直到你收到数据或只尝试10次(一次超时2s,最坏的情况下你会等待20秒)

F2被SNS触发,用数据包括transactionID,然后用tbl_f2_result => transactionID将结果(成功与否,错误信息......)插入结果表(result),回调结束F2。

transactionID是表的索引键:D

你必须增加F1的超时 - 默认是6秒。

发布评论

评论列表 (0)

  1. 暂无评论