我有一个any应用程序和数据库,不是托管在任何云服务上,只是在一个常规的托管平台上。
我需要构建一个API来读取和写入该数据库,并且我希望使用云函数来这样做。是否有可能从云函数(如AWS、Lambdas或Google云函数)连接到远程数据库,即使它们没有承载云服务?
如果是的话,是否会有问题呢?
发布于 2019-11-14 14:08:01
云函数只是运行在托管环境中的Node.js代码。这意味着您的代码几乎可以执行Node.js脚本所能做的任何事情,只要您保持在该环境的限制内。
我看到人们连接到许多其他数据库服务,无论是在Google平台内还是在它之外。需要注意的主要限制是,为了能够调用不在Google平台上运行的API,您需要执行付费计划。
发布于 2019-11-14 14:07:18
是的有可能。
如果是的话,是否会有问题呢?
如果数据库位于不同的网络中,则可能存在很高的延迟。而且,长期存在的数据库连接池在这些环境中并不能很好地工作,这是因为不断创建和破坏的函数的性质。此外,如果您的函数达到高度并发性,则可能会耗尽数据库服务器上可用连接的数量。
发布于 2019-11-14 14:12:36
您可以使用与托管在任何web服务器或云服务器上的web服务相同的FaaS。您必须小心调用DB的持续时间,因为FasS函数在时间上是有限的( AWS为15分钟,谷歌为9分钟),并在DB服务器上正确配置防火墙。
您的lambda函数的容器可以重用,您可以使用它的一些技巧- AWS Lambda容器重用的最佳实践。
但是你不能确定在你服务的过程中没有什么改变。你可以在那里读到一些很好的建议-- https://stackoverflow.com/a/37524237/182344
PS: Azure函数有设置,但我不确定在这种情况下池将如何工作。
https://stackoverflow.com/questions/58858501
复制相似问题