【问题标题】:Can I access my Lambda from EC2 instance within private VPC?我可以从私有 VPC 中的 EC2 实例访问我的 Lambda 吗?
【发布时间】:2018-01-25 04:41:33
【问题描述】:

有问题的 EC2 实例位于私有子网中,并且没有通过设计启用通过 NAT 的 Internet 访问。 目前,我的 Lambda 位于连接到同一 VPC 的公共子网中。

当我尝试调用 Lambda 时,我收到 Connection to lambda.us-east-1.amazonaws.com timed out

【问题讨论】:

    标签: aws-lambda amazon-vpc


    【解决方案1】:

    当您尝试调用 Lambda 函数时,Lambda 函数在哪里都没有关系。这是因为您在调用 Lambda 函数时并未直接连接它。您正在连接到 AWS API 以调用 Lambda 函数。您能够从私有子网中的 EC2 实例执行此操作的唯一方法是通过 NAT 网关。

    【讨论】:

      【解决方案2】:

      Amazon EC2 实例无法“访问 Lambda 函数”,但它们当然可以调用 AWS Lambda API 来调用 Lambda 函数。

      但是,API endpoints for AWS services 都驻留在 Internet 上。因此,调用 API需要访问 Internet。 (目前有两个例外是 Amazon S3 和 Amazon DynamoDB,它们可以使用 VPC 端点 来访问 API 端点。)

      因此,要从私有子网中的 Amazon EC2 实例调用 Lambda 函数,您需要一个 NAT 网关 和一个配置为将 Internet 绑定流量发送到 NAT 网关的私有路由表。

      Lambda 函数连接到您的公有子网这一事实与调用 Lambda 函数无关。它只是意味着 Lambda 函数在运行时可以访问 VPC 内的资源。 (事实上​​,Lambda 函数通常连接到私有子网而不是公共子网,因为它们只有在其流量通过 NAT 网关路由时才能访问 Internet。)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-01-12
        • 1970-01-01
        • 2019-11-26
        • 1970-01-01
        • 2019-07-25
        • 1970-01-01
        • 2021-12-04
        相关资源
        最近更新 更多