接入One-Zone EFS的AWS Lambda丢失互联网访问问题咨询
问题1:是否必须禁用One-Zone EFS配置才能让Lambda恢复互联网访问?
不需要,你遇到的报错是可用区(AZ)匹配问题,和One-Zone的配置本身无关,具体原因如下:
- One-Zone EFS本身仅支持在指定的单个AZ创建挂载目标,这是服务的正常特性,不是限制。
- 你首次收到报错
EFS file system referenced by access point does not have mount targets created in all availability zones the function will execute in的核心原因是:你给Lambda配置了多个属于不同AZ的子网,其中部分子网所在的AZ没有EFS挂载目标,而One-Zone EFS无法在其他AZ创建挂载目标,才触发了后续的You can only create one mount target per Availability Zone报错。 - 无需修改EFS的One-Zone配置,只要保证Lambda绑定的所有子网,都和EFS的挂载目标处在同一个AZ即可正常使用。
问题2:为什么当前配置没有用到EFS相关路由,仍可正常访问EFS?
相关规则和配置逻辑如下:
- 两个核心基础规则:
- EFS挂载目标是按AZ部署,不会绑定到某个特定子网,只要你的资源和EFS挂载目标在同一个VPC、同一个AZ,就可以发起访问,和资源所在的子网没有专属绑定关系。
- 所有VPC路由表默认自带VPC本地路由(目标为你的VPC CIDR段,下一跳为
local),这条路由默认启用且无法删除,作用是让VPC内所有资源可以直接互相访问。
- 你之前的另一张路由表,是最初绑定给EFS专属私有子网的路由表,该路由表仅包含本地路由,没有指向NAT网关的公网路由,所以之前Lambda用这个子网的时候只能访问EFS,无法访问公网。
- 你后来替换使用的、带NAT路由的子网,和EFS挂载目标处在同一个AZ,它关联的路由表同时包含两条有效路由:
- 本地路由:负责同VPC内部的流量转发,满足EFS访问需求
- 0.0.0.0/0指向NAT网关的路由:负责公网流量转发,满足互联网访问需求
所以Lambda自然可以同时访问两个资源,不需要额外的EFS专属路由配置。
内容的提问来源于stack exchange,提问作者user2161301
相关产品推荐
相关产品推荐

