Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.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
Amazon web services 如何将VPC内的AWS Lambda功能连接到DynamoDB等公共资源?_Amazon Web Services_Lambda_Routing_Amazon Dynamodb_Amazon Vpc - Fatal编程技术网

Amazon web services 如何将VPC内的AWS Lambda功能连接到DynamoDB等公共资源?

Amazon web services 如何将VPC内的AWS Lambda功能连接到DynamoDB等公共资源?,amazon-web-services,lambda,routing,amazon-dynamodb,amazon-vpc,Amazon Web Services,Lambda,Routing,Amazon Dynamodb,Amazon Vpc,我正在尝试为ElasticCache启用VPC lambda功能以访问DynamoDB。我知道为此,我需要设置一个NAT网关。然而,我无法让它工作。我的专用子网位于172.31。。射程 以下是我将要采取的步骤: 创建ip范围为10.0.0.0的公共子网 在上述相同的IP范围内创建一个公共VPC 在公共VPC中创建公共互联网网关 创建不是主路由表的公共路由表,并将公共子网附加到该表。然后,将0.0.0.0/0的路由添加到上面创建的公共Internet网关 在公用子网中创建NAT网关。这个NAT在1

我正在尝试为ElasticCache启用VPC lambda功能以访问DynamoDB。我知道为此,我需要设置一个NAT网关。然而,我无法让它工作。我的专用子网位于172.31。。射程

以下是我将要采取的步骤:

  • 创建ip范围为10.0.0.0的公共子网
  • 在上述相同的IP范围内创建一个公共VPC
  • 在公共VPC中创建公共互联网网关
  • 创建不是主路由表的公共路由表,并将公共子网附加到该表。然后,将0.0.0.0/0的路由添加到上面创建的公共Internet网关
  • 在公用子网中创建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网关,并将路由转发给它,但它不起作用。我漏掉了什么?

    很傻,但是你是不是碰巧把默认的VPC(172.31…)和你创建的VPC(10.0…)混在一起了。因此,如果您看到的是默认VPC的路由表,那么它实际上是默认子网的路由表,顺便说一句,默认子网是公共的

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


    对于一个有网络背景的人来说,私有子网和公共子网的概念最初是不明确的。实际上,这意味着逻辑子网将具有可从internet访问的资源(如web服务器)和本地资源(如数据库服务器)(应保护其不受internet的影响)。

    您的私有子网的默认路由应指向,而不是internet网关。正如我所提到的,我的私有子网没有在转发到的选项列表中显示我的NAT。在Amazon发布一个很好的解决方案之前,不要将ElastiCache与DynamoDB一起使用,因为现在正确配置它非常痛苦。我们最终使用redislabs.com作为我们的lambdas。