AWS lambda函数无法访问互联网

2023-12-04

我正在运行一个 lambda 函数,我想访问私有数据库服务器和互联网。我可以很好地访问数据库,但无法访问互联网。

设置:

VPC (10.0.0.0/16)
   Public-Subnet (10.0.0.0/24)
      NAT-Security-Group (see security groups below)
         NAT-Server (AMI NAT instance)

   Private-Subnet-1 (10.0.1.0/24) & Private-Subnet-2 (10.0.2.0/24)
      DB-Security-Group (see security groups below)
         DB-Server (RDS PostgreSQL instance)

      Lambda-Security-Group (see security groups below)
         Lambda-Function

安全组是:

NAT-Security-Group
   Inbound:
      HTTP & HTTPS from source: Lambda-Security-Group
      SSH from 0.0.0.0/0
   Outbound:
      All traffic

DB-Security-Group
   Inbound:
      PostgreSQL from source: Lambda-Security-Group
   Outbound:
      All traffic

Lambda-Security-Group
   Inbound:
      HTTP & HTTPS from source: NAT-Security-Group
   Outbound:
      All traffic

子网的路由表为:

Public-Subnet:
   10.0.0.0/16 local
   0.0.0.0/0 Internet-Gateway

Private-Subnet-1 & Private-Subnet-2
   10.0.0.0/16 local
   0.0.0.0/0 NAT-Server

我在这里不知所措。为什么 lambda 函数无法访问互联网(连接超时错误)?


公有子网中的 lambda

由于您只需要从 lambda 与数据库进行通信,因此将 lambda 放入公共子网中,并且不需要安装 NAT 网关。 无论如何,不​​会像 ELB 那样直接访问 lambda,并且必须附加到 API 网关,以防通过 API 端点进行任何访问。

私有子网中的 lambda

  • 将 NAT 路由添加到与所有地址 0.0.0.0/0 的私有子网关联的路由表中
  • 将所有 0.0.0.0/0 到 IGW 的路由添加到与公共子网关联的路由表中。
  • 将 NAT 置于公共子网中

这应该可以解决从 lambda 访问互联网的问题。但只有在您要使用安装在 EC2 中的数据库用于将来的补丁管理或从堡垒主机进行任何其他访问时才有用。如果使用 RDS,则没有必要将 lambda 放入私有子网中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWS lambda函数无法访问互联网 的相关文章

随机推荐

  • Javascript 函数将十进制年份值转换为年、月和日

    我需要一个函数来将年的十进制值转换为年 月和日 例如 1 5 年 1 年 6 个月 2 2527397260273973 年 2 年 3 个月 1 天 我从这个函数开始 function yearsToYearsMonthsDays val
  • EFCode First 属性为空问题

    我在 asp net mvc 3 模型中使用 EFCode First 实体框架 4 0 和 EFCode First 0 8 该模型定义如下 public class User Key public int Id get set publ
  • java 如何使用 JDBC 执行 SQL Dump 数据

    我在使用普通 JDBC 连接执行 sql 转储数据时遇到错误 我不知道出现错误的原因是什么 请帮我 try Connection con1 Connection DriverManager getConnection jdbc mysql
  • HTML 文本区域水平滚动

    我想为 HTML 页面中的文本区域提供水平滚动 如果我输入没有换行符的长行 则滚动条应该显示而不换行 一些朋友建议使用overflow y CSS属性 这对我不起作用 我使用的浏览器是 IE 6 和 Mozilla 3 我想出了一种不符合
  • 如何使光标可以输入jtextfield,但为其提供文本的唯一方法是单击按钮?

    我有 jTextfield 和 jButton how to 用户可以单击 jTextfield 鼠标可以在 jtextfield 上进入 退出 但如果用户输入某些内容 它将不会执行任何操作 除了退格键会删除整个文本 当用户单击该按钮时 它
  • 初始化中隐式解包的可选值 - Swift

    当编写一个新的 swift 类时 当 不 使用隐式展开的选项而不是简单的选项时 我仍然不是 100 舒服 据我所知 如果您从未期望它的值为零 则将某些内容分配为隐式解包 并且可选 应该可以 如果它为零 则这是一个异常事件 应该会导致运行时错
  • 当主页视图导航到登录视图时,如何触发登录的useEffect?

    基本上在login我有一个函数可以验证令牌是否存在 如果存在则自动重定向到home视图 否则它将保留在login view Login const Login props gt const loading setLoading useSta
  • 如何编写 lambda 处理程序以将数据发送到 Elasticsearch

    下面是将数据发送到本地Elasticsearch的代码 r Name Dr Christopher DeSimone Specialised and Location Health Name Dr Tajwar Aamir Aamir Sp
  • 使用命令行界面的文件中的整数数量

    如何使用egrep计算文件中整数的数量 我试图将其作为模式发现问题来解决 实际上 我面临着如何表示字符范围 0 9 的问题不断地其中包括开头之前的 空格 和结尾之后的 空格或点 我认为后者可以分别使用 来解决 另外 它之间不应包含点 否则它
  • 将 C++ 代码转换为 C#:SendMessageTimeout()

    首先是 SendMessageTimeout 的文档 http msdn microsoft com en us library windows desktop ms644952 28v vs 85 29 aspx 我有这个 C 代码 我想
  • jQuery AJAX 与传统 true 一起使用好不好?

    首先 我不知道传统在Ajax设置中意味着什么 其次 在ASP MVC中有没有什么情况需要将其设置为true 看名字 估计是要贬值了吧 不是吗 jQuery API 文档 http api jquery com jQuery Ajax jQu
  • 在自托管 ASP.NET Core 微服务中启动多个后台线程

    我在哪里可以创建多个长时间运行的后台线程Self Hosted Self Contained ASP NET Core Microservice谁的生命周期与微服务生命周期相同 因此 从线程检索的信息可以作为对请求的响应发送 尝试了给定的代
  • 将 2d 数组从 PHP 传递到 JavaScript 的最佳方法?

    我想在 JavaScript 代码中使用一个 PHP 数组 我宁愿不做类似的事情对于其中的所有元素 因为它的数量未知 我本来打算做一个 while 循环来将一些数据写入元素中 但目前我似乎找不到一种简单的方法来做到这一点 如何以最简单的方式
  • 带有自定义图像 CSS 代码的复选框不起作用

    我正在尝试将自定义图像添加到复选框 并且我正在使用以下代码 input type checkbox display none input type checkbox label background image url images che
  • 使用 R 上的“高频”包转换 .csv 文件以进行进一步操作

    The highfrequency包已以转换的方式创建 txt and csv文件分别从 NYSE TAQ 和 WRDS TAQ 存入 RDataxts 对象的文件 然后可以通过包轻松操作这些文件 问题是我对 WRDS 数据库的访问权限有限
  • SQL 中是否始终需要 ID 列?

    更具体地说 我创建了一个带有标签系统的新闻模块 由于每个标签都是唯一的 作为管理员 您不允许创建 2 个相同的标签 因此 id 列仍然有用吗 我想不是 但我想知道表演 编号 mews 标题 日期 news id tag id id 标签名
  • 为什么 ARKit 应用程序在几天后停止工作?

    我在 Unity 中为 iOS 开发了一个简单的 ARKit 应用程序 它工作得很好 但有一个奇怪的问题 几天后它就停止工作了 因此 当我点击 iPhone 上的应用程序图标时 它会打开该应用程序一毫秒 然后立即退出 如果我再次重新安装该应
  • 运行 webpack 后 Javascript 函数未定义

    这是我的 webpack config js module exports entry src index js path relative to this file output filename frontEnd bundle js p
  • 版本控制中的项目结构

    我知道在版本控制中至少有 10 种不同的方式来构建项目 我很好奇正在使用的一些方法是什么以及哪些方法适合您 我曾经使用过 SVN TFS 目前 不幸的是 VSS 我见过版本控制的实现非常糟糕 也还可以 但从来都不是很好 为了让事情顺利进行
  • AWS lambda函数无法访问互联网

    我正在运行一个 lambda 函数 我想访问私有数据库服务器和互联网 我可以很好地访问数据库 但无法访问互联网 设置 VPC 10 0 0 0 16 Public Subnet 10 0 0 0 24 NAT Security Group