首页 > 解决方案 > AWS 将 VPC 中的 Lambda 调用到另一个 VPC 中的另一个 Lambda

问题描述

可以从另一个 VPC 中的另一个 lambda 调用位于 VPC 内的 lambda 函数。

我正在尝试使用 AWS VPC 终端节点执行此操作,但我无法执行此操作。它标记错误 403。我正在执行以下步骤:https ://aws.amazon.com/es/blogs/compute/introducing-amazon-api-gateway-private-endpoints/ 。

https://cedrus.digital/aws-privatelink-with-api-gateway-and-lambda-functions/

我不确定是否应该在将调用 lambda 或接收请求的 VPC 中创建 VPC 端点。

甚至,API Gateway Resource Policies 是这样说的:

{
    "Statement": [
        {
            "Principal": "*",
            "Action": [
                "execute-api:Invoke"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}

并将 VPC 终端节点策略设置为完全访问权限。

标签: amazon-web-servicesaws-lambdaamazon-vpc

解决方案


要通过 API 调用调用 AWS Lambda 函数,调用实体必须能够访问 Internet。调用实体是在同一个 VPC 中、不同的 VPC 中,还是不在 VPC 中都没有关系。重要的是可以将请求发送到 AWS Lambda API 端点。

如果调用 Lambda 函数位于 VPC 中,请确保它可以访问 Internet。这通常需要:

  • Lambda 函数位于私有子网中
  • 公共子网中有NAT 网关
  • 私有子网的路由表0.0.0.0/0流量定向到 NAT 网关

或者,如果调用 Lambda 函数连接到 VPC,则它会自动接收对 Internet 的访问。

连接“被调用”的 Lambda 函数(VPC 与否)也无关紧要。激活这个 Lambda 函数的控制平面在 Internet 上,与 Lambda 函数本身连接的位置无关。


推荐阅读