Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AWS lambda-如何从lambda连接内部oracle实例(例如VPN/内部办公网络)_Oracle_Amazon Web Services_Aws Lambda - Fatal编程技术网

AWS lambda-如何从lambda连接内部oracle实例(例如VPN/内部办公网络)

AWS lambda-如何从lambda连接内部oracle实例(例如VPN/内部办公网络),oracle,amazon-web-services,aws-lambda,Oracle,Amazon Web Services,Aws Lambda,我的应用程序托管在AWS中,DB托管在内部网络上,有时托管在10.x上,或者可以通过VPN网络访问。 从AWS访问oracle的解决方案可能是什么。将compute和DB保持如此远的距离并不是一个好习惯,这将导致许多延迟和安全问题。此外,您还需要公开数据库,这同样会带来安全风险 但要找到解决方案,请为您的内部数据库设置一个公共IP,并像通常的jdbc或其他解决方案那样将Lambda连接到它 最好是公开一个REST服务,它只从数据库中获取数据,例如。@HoratiuJeflea很好地指出了此设置的

我的应用程序托管在AWS中,DB托管在内部网络上,有时托管在10.x上,或者可以通过VPN网络访问。
从AWS访问oracle的解决方案可能是什么。

将compute和DB保持如此远的距离并不是一个好习惯,这将导致许多延迟和安全问题。此外,您还需要公开数据库,这同样会带来安全风险

但要找到解决方案,请为您的内部数据库设置一个公共IP,并像通常的jdbc或其他解决方案那样将Lambda连接到它


最好是公开一个REST服务,它只从数据库中获取数据,例如。

@HoratiuJeflea很好地指出了此设置的延迟问题,但我建议有一个更干净的解决方案,而不是在公共IP上公开本地数据库,并通过Internet与本机客户端或简单的REST类接口连接。如果你遵循这两条路径中的任何一条,TLS是绝对必要的。。。但是,如果您在我的基础架构中提出这种设置,我不会允许,因为有另一种方式可以说是更简单、更安全的读取方式:同时更难以不安全的方式进行错误配置

默认情况下,您在Amazon VPC中启动的实例无法与您自己的远程网络通信。通过将虚拟专用网关连接到VPC、创建自定义路由表、更新安全组规则、创建AWS站点到站点VPN站点到站点VPN连接,以及配置路由以通过连接传递流量,您可以从VPC访问远程网络


尽管这提到了实例EC2,但它同样适用于VPC中运行的Lambda函数。站点到站点VPN创建了一对冗余的IPSec隧道,从数据中心的防火墙到VPC上AWS提供的硬件,并允许专用网络在它们之间路由流量。

感谢您的建议。有没有想过通过RESTAPI在中公开oracle数据?有没有从oracle DB中内置的函数,而不是使用spring或其他框架。同样,RESTAPI应该在公共IP中。是的,我建议在那里创建一个非常薄的层,它可以执行特定的查询。您可以更加灵活并允许自定义查询,但这将导致安全问题。所以您将有getCustomer、getUser、getUserfilter等等。添加executeQueryq是可能的,但存在风险。