![]() |
1
6
如果你使用亚马逊极光,你可以这样做。 Amazon Aurora最近的更新之一是支持从存储过程调用Lambda函数。 因此,为了实现您的需求,您可以创建一个SQL触发器,该触发器调用一个SQL存储过程,然后该存储过程调用一个Lambda函数,该函数将数据发送到弹性搜索。 Invoking a Lambda Function from an Amazon Aurora DB Cluster 关于交易的说明 : 像 @Ahmad Nabil 在 comments below ,可以在提交事务之前执行触发器。因此,调用Lambda的SQL触发器可能不是您想要的。 如果您使用的不是Aurora,而是MySQL或MariaDB,如果这个功能对您的应用程序真的很重要,我建议您切换。 如果您使用的数据库不是Aurora、MySQL或MariaDB,那么您必须重新考虑您的应用程序,以便将数据同时写入RDS和ElasticSearch。我还推荐以下架构模式: |
![]() |
2
0
我尝试使用Amazon Aurora触发器调用lambda函数,但在使用事务时出现了一些问题,因为 可以在提交事务之前执行触发器 所以我最后做的是修改应用层,在向数据库发送数据的同一“事务”中异步调用lambda函数, 如果lambda函数出现故障,您可以重试并使用DLQ(死信队列)确保数据不会丢失,并实际将其发送到elasticsearch。 |