问题描述
我有一个在网络不稳定的本地服务器上运行的API。我想添加一些基于云的冗余,但是不知道最好/最便宜的方式。
API从Webhook接收一些数据并更新本地网络上的设备。
我一直在集思广益的是API的精简版本,它仅保留webhook数据,对主要API进行ping操作,如果已启动并收到数据,则无济于事(如果那样的情况下),但是如果主API处于关闭状态,它将发送电子邮件并存储数据,然后以12-24小时的间隔重新发送数据,直到成功为止(发生网络故障的可能性很高,直到有人物理重置硬件需要$解决我没有的问题)。有没有更好的方法来实现这一目标?
此外,哪种服务最适合这种部署/可以使用哪些工具来帮助解决此类问题?每月发送和接收的请求不会超过100个,因此我想保持其便宜/免费。尽管使用24小时计时器,我不知道执行此操作的最佳方法。过去我曾经使用过Heroku,并且知道它的调度程序功能,但是我没有使用过它们,并且在投资解决方案之前需要更多的投入。当前的API无法按原样部署,我可能必须从头开始重建才能在云环境中工作,所以我想事先选择一些东西。
解决方法
在这种情况下,无服务器架构听起来是最好的选择(即AWS Lambda)。您可以使用托管存储服务(即S3)来存储数据,直到可以访问本地API。对于这种用例,任何涉及持久运行服务的事情都可能不具有成本效益。
您可以安排无服务器作业,也可以按计划从存储服务中读取本地API。如果您的本地API可以检测到这些网络故障,则可以完全避免调度,并在恢复连接时检查更新。
我提到过AWS,但是有很多选择(最明显的是Google Cloud)。