当前位置: 首页 > 知识库问答 >
问题:

如何将 VPC 内的 AWS Lambda 函数连接到公有资源(如迪纳摩DB)?

颛孙安康
2023-03-14

我正在尝试为ElasticCache启用VPC lambda函数以访问DynamicDB。我知道为此,我需要设置一个NAT网关。然而,我无法使它工作。我的专用子网在172.31..范围内。

以下是我遵循的步骤:

    < li >创建一个ip范围为10.0.0.0的公共子网。 < li >在上述相同的IP范围内创建一个公共VPC。 < li >在公共VPC创建公共互联网网关。 < li >创建一个公共路由表,它不是主路由表,并将公共子网附加到它。然后,将0.0.0.0/0的路由添加到上面创建的公共Internet网关。 < li >在公共子网中创建NAT网关。此NAT在10中获得一个弹性IP和一个私有IP...*范围。

现在我有 3 个路由表,两个用于我的公有子网 (10.0.0.0),一个用于我的私有子网 (172.31.0.0),它是我的私有 VPC 的一部分。

我的专用路由表有一个0.0.0.0/0到我的专用Internet网关的路由

我想我需要更改此路由以指向我的公共NAT网关,但是我无法这样做,因为我的NAT的私有IP位于10.0.0.0范围内。在这一点上,我不知道如何继续下去。我试着在私有子网中创建一个NAT网关,并将路由转发给它,但它也不起作用。我错过了什么?

共有2个答案

微生阳平
2023-03-14

我犯的错误是创建了两个VPC,一个用于专用子网,另一个用于公用子网。除非启用对等,否则AWS VPC无法相互通信。

对于有网络背景人来说,私有子网和公共子网的概念起初是模糊的。它实际上意味着,逻辑子网将拥有可从互联网访问的资源(如web服务器)和本地资源,如数据库服务器(应受到保护,不受互联网影响)。

轩辕涵亮
2023-03-14

愚蠢,但您是否有可能混淆了默认VPC(172.31…)和您创建的VPC(10.0…)。因此,如果您看到默认VPC的路由表,实际上是默认子网的路由表。顺便提一下,它是公共的!

 类似资料:
  • 问题内容: 我有一种方法来启动我的应用程序: 我有一个Jersey资源类: 处理依赖关系的正确方法是什么?我希望我的资源与其他对象进行通信,如何将它们连接在一起? 问题答案: 您可以实现InjectableProvider。例如: 然后在资源中注释字段: @Resource private Foo foo;

  • 我正在尝试从Lambda函数写入DynamoDB表。当我测试运行这个函数时,它返回null,没有错误消息,也没有任何东西写入表中。功能如下。我已经为这个功能设置了一个服务角色,它具有允许访问“产品”表的权限策略。我看到一些教程提到创建一个“AWS Lambda应用程序”,然后创建Lambda函数,但我不认为这对我的使用是必要的。 我还尝试过使用文档客户端 我得到的错误是:“发电机。文档客户端不是构

  • 我正在尝试将进度条连接到我的项目的函数。 到目前为止,这就是我所拥有的,但我很确定它毫无用处: 下面是我制作进度条的代码,如果有帮助的话: 我做了一些研究,了解到tkinter窗口在运行函数或类似的东西时会冻结。有没有办法在主函数中调用的每个函数末尾“解冻”窗口?

  • 我正在使用JSON结构来存储一个人的详细信息。基本上姓名,电话,注册时间戳等,将是其他属性,主键将是电子邮件地址。 MarkedLocation、visitedLocations、searchHistory和recommendation是AWS所称的列表或地图。它将包含许多JSON对象。 JSON结构- 在应用程序中,如果用户访问一个新位置,我需要向markedLocations添加一个新的JSO

  • 问题内容: 我们有许多应用程序使用一个位于VPC外部(经典实例)的ElasticCache实例(Redis)。一些应用程序位于VPC中,而某些应用程序位于VPC外部(经典实例)。我们如何将所有应用程序连接到缓存? 我们将VPC外部的应用程序连接到缓存没有问题,因为缓存也位于VPC外部。VPC内部的应用程序数量较少,无法连接到缓存。 谢谢。 问题答案: 无法从VPC实例直接访问经典群集。解决方法是在

  • 问题内容: 我在WAR中打包了一组图像,并在using中对其进行了描述。图像位于文件夹中。我希望能够选择一个图像,并在提交时将该图像的副本保存到磁盘上。 如何才能做到这一点?如何获得对此图像的参考(或其他参考)? 问题答案: 鉴于此文件夹结构, 您可以通过采用相对于webcontent的路径之一来获取它: 或通过其中获得- 的相对路径: 关于选择图像并传递其路径,只需执行以下操作: