【问题标题】:How to call Oracle DB from Google Cloud Functions in Node.js如何在 Node.js 中从 Google Cloud Functions 调用 Oracle DB
【发布时间】:2019-09-24 05:54:25
【问题描述】:

我正在尝试创建一个小型 Google Cloud Function (GCF),它将查询 Oracle DB 并发送电子邮件。我正在研究使用 Node.js。我找不到任何有用的东西,我发现的唯一关闭是关于 GCF to Oracle with Python 的帖子。如果有办法从 GCF 调用 Oracle DB,请告诉我

【问题讨论】:

  • 缺少很多细节。 Oracle 数据库是本地的吗?你有网络连接吗?您是否确定了 Oracle 连接需要哪个 node.js 依赖项?你对 node.js 有什么经验?您是否有一些现有的 node.js 可以在本地执行此操作(不在 GCF 中?)

标签: node.js oracle google-cloud-platform google-cloud-functions


【解决方案1】:

总而言之,这是不可能的,因为您需要安装 Instant Client 而您不能在 Cloud Function 环境中。 AppEngine Standard 也有同样的问题。

我正在Medium 上写一篇关于此的文章。在发布之前,我正在等待 Cloud Run 的错误修复和 Google 的验证(因为其中有些内容可能是机密的)。

有两种解决方法:

  • 构建一个容器(只需在您的函数前面放置一个快速服务器,仅此而已!)。
    • 如果您需要访问 OnPrem Oracle DB,您可以在 AppEngine Flex 上部署您的容器(但不要扩展到 0)并设置无服务器 VPC 连接器
    • 如果您不需要无服务器 VPC 连接器,则可以在发布错误后的几周内在 Cloud Run 上进行部署
  • 使用 Java。您必须手动下载 Oracle Jar 驱动程序并在 Maven/Gradle 中手动安装它,但它可以在任何地方使用,即使在 AppEngine 标准上也是如此。

更新

已解决 Cloud Run 和 GVisor 的错误。 Here我的文章

【讨论】:

  • 感谢您的回答。关于第二个选项,没有 Java GCF,我假设您的意思是 AppEngine 或其他环境中的 Java
  • 今天,是的,AppEngine 标准中的 Java 可以正常工作(缩放到 0 并与无服务器 VPC 连接器兼容)。也适用于 AppEngine Flexible 和 Cloud Run TODAY,因为 Instant Client 的当前错误不存在(因为不需要 Instant Client)。 Java GCF 处于 alpha 阶段(我在我的文章中谈到了它,这就是我等待 Google 验证的原因),它也将是一个解决方案。
猜你喜欢
  • 2021-06-30
  • 2021-07-25
  • 1970-01-01
  • 2018-03-27
  • 2017-08-18
  • 2019-07-11
  • 2020-09-19
  • 2020-09-29
  • 2018-01-24
相关资源
最近更新 更多