You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

同一VPC内通过VPC Endpoint实现Lambda A调用Lambda B的配置问题求助

Lambda跨VPC端点调用超时排查方案

核心问题梳理

同一VPC内,Lambda A尝试通过VPC Endpoint调用Lambda B(无NAT Gateway),调用触发30秒超时,CloudWatch仅记录时长无明确错误日志,已配置三个专属安全组并启用VPC DNS解析/主机名。

排查修复步骤

1. 确认VPC Endpoint基础配置

  • 必须创建Lambda服务的接口型VPC Endpoint,服务名称需为com.amazonaws.<区域>.lambda,网关型端点不支持Lambda调用
  • 确保Endpoint关联了Lambda A所在的所有子网,且这些子网的路由表已添加指向该Endpoint的路由(目标为Lambda服务DNS名称,下一跳为VPC Endpoint)

2. 补全安全组端口规则

当前安全组仅配置了安全组访问,缺少端口限定,需补充:

  • Lambda B安全组:入站规则添加「允许来自VPC Endpoint安全组的TCP 443端口访问」(Lambda调用走HTTPS)
  • VPC Endpoint安全组:出站规则添加「允许到Lambda B安全组的TCP 443端口访问」
  • Lambda A安全组:出站规则添加「允许到VPC Endpoint安全组的TCP 443端口访问」

3. 修正Lambda客户端配置

当前代码未适配VPC Endpoint环境,需调整:

  • 删除硬编码的BasicAWSCredentials,Lambda运行时会自动通过执行角色获取权限
  • 强制客户端使用VPC内的Lambda私有端点,示例代码修改如下:
var config = new AmazonLambdaConfig
{
    RegionEndpoint = RegionEndpoint.USEast1,
    // 启用私有DNS时可留空,客户端自动解析;未启用则填写VPC Endpoint的具体DNS
    ServiceURL = "https://lambda.us-east-1.amazonaws.com"
};
var amazonLambdaClient = new AmazonLambdaClient(config);

InvokeResponse mongoDbConnectCentralInsertInvokeResponse = await amazonLambdaClient.InvokeAsync(new InvokeRequest
{
    FunctionName = "LambdaB",
    Payload = new JObject().ToString()
});

4. 校验IAM权限

  • Lambda A的执行角色需附加lambda:InvokeFunction权限,资源指定为Lambda B的ARN
  • VPC Endpoint的策略需允许Lambda A的执行角色通过该端点调用Lambda服务,示例策略:
{
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<账号ID>:role/LambdaA-Execution-Role"
            },
            "Action": "lambda:InvokeFunction",
            "Resource": "arn:aws:lambda:us-east-1::<账号ID>:function:LambdaB"
        }
    ]
}

5. 验证网络连通性

  • 在Lambda A所在子网启动EC2实例,关联Lambda A的安全组,执行telnet lambda.us-east-1.amazonaws.com 443或curl -v https://lambda.us-east-1.amazonaws.com/2015-03-31/functions/LambdaB/invocations,测试是否能连通端点并调用Lambda B
  • 执行nslookup lambda.us-east-1.amazonaws.com,确认返回VPC内私有IP(而非公网IP),验证DNS解析正常

6. 检查Lambda B的VPC部署状态

若Lambda B未部署在VPC内,VPC Endpoint无法直接访问,需将Lambda B也部署到同一VPC的子网中,或调整架构逻辑


内容的提问来源于stack exchange,提问作者Quan Nguyen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 11:37:20