AWS Lambdas 或 Google Cloud Function 等云函数可以从其他服务器访问数据库吗?
Can cloud functions like AWS Lambdas or Google Cloud Function access databases from other servers?
我有一个 Web 应用程序和数据库,它们未托管在任何云服务上,仅托管在常规托管平台上。
我需要构建一个 API 来读取和写入该数据库,并且我想使用云函数来执行此操作。是否可以从云功能(例如 AWS Lambdas 或 Google 云功能)连接到远程数据库,即使它们没有托管该云服务?
如果是这样,这样做会不会有问题?
是的,这是可能的。
If so, can there be problems with doing so?
如果数据库位于不同的网络中,可能会有很高的延迟。此外,由于不断创建和销毁函数的性质,长期存在的数据库连接池在这些环境中并不能很好地工作。此外,如果您的函数达到高并发级别,您可能会耗尽数据库服务器上的可用连接数。
Cloud Functions 只是 Node.js 在托管环境中运行的代码。这意味着您的代码几乎可以做 Node.js 脚本可以做的任何事情,只要您不超出该环境的限制。
我见过人们连接到 Google Cloud Platform 内部和外部的许多其他数据库服务。需要注意的主要限制是,您需要使用付费计划才能在 Google Cloud Platform 上调用非 运行 的 API。
您可以像使用托管在任何网络服务器或云服务器上的网络服务一样使用 FaaS。
您必须小心调用数据库的持续时间,因为 FasS 函数有时间限制(AWS Lambda 为 15 分钟,Google 为 9 分钟)并在您的数据库服务器上正确配置防火墙。
您的 lambda 函数的容器可以重复使用,您可以对其使用一些技巧 - Best Practices for AWS Lambda Container Reuse
但是您不能确定在您的服务工作期间没有发生任何变化。
你可以在那里阅读一些关于它的好建议 -
PS:Azure 函数有 always on setting,但我不确定在这种情况下池化将如何工作。
是的,您可以从无服务器产品访问本地资源。
请查看此详细教程,您可以在其中找到实现目标的 3 种方法link:
正在使用 VPN
连接
正在使用 Parner interconnect
连接
连接
我有一个 Web 应用程序和数据库,它们未托管在任何云服务上,仅托管在常规托管平台上。
我需要构建一个 API 来读取和写入该数据库,并且我想使用云函数来执行此操作。是否可以从云功能(例如 AWS Lambdas 或 Google 云功能)连接到远程数据库,即使它们没有托管该云服务?
如果是这样,这样做会不会有问题?
是的,这是可能的。
If so, can there be problems with doing so?
如果数据库位于不同的网络中,可能会有很高的延迟。此外,由于不断创建和销毁函数的性质,长期存在的数据库连接池在这些环境中并不能很好地工作。此外,如果您的函数达到高并发级别,您可能会耗尽数据库服务器上的可用连接数。
Cloud Functions 只是 Node.js 在托管环境中运行的代码。这意味着您的代码几乎可以做 Node.js 脚本可以做的任何事情,只要您不超出该环境的限制。
我见过人们连接到 Google Cloud Platform 内部和外部的许多其他数据库服务。需要注意的主要限制是,您需要使用付费计划才能在 Google Cloud Platform 上调用非 运行 的 API。
您可以像使用托管在任何网络服务器或云服务器上的网络服务一样使用 FaaS。 您必须小心调用数据库的持续时间,因为 FasS 函数有时间限制(AWS Lambda 为 15 分钟,Google 为 9 分钟)并在您的数据库服务器上正确配置防火墙。
您的 lambda 函数的容器可以重复使用,您可以对其使用一些技巧 - Best Practices for AWS Lambda Container Reuse
但是您不能确定在您的服务工作期间没有发生任何变化。 你可以在那里阅读一些关于它的好建议 -
PS:Azure 函数有 always on setting,但我不确定在这种情况下池化将如何工作。
是的,您可以从无服务器产品访问本地资源。
请查看此详细教程,您可以在其中找到实现目标的 3 种方法link:
正在使用 VPN
连接
正在使用 Parner interconnect
连接
- 连接