连接 Lambda 的入站接口 VPC 端点
如果您使用 Amazon Virtual Private Cloud (Amazon VPC) 托管Amazon资源,则可以在您的 VPC 和 Lambda 之间建立连接。您可以使用此连接来调用您的 Lambda 函数,而无需跨越公有互联网。
您可以通过创建接口 VPC 终端节点在 VPC 和 Lambda 之间建立私有连接。接口端点由 Amazon PrivateLink
每个接口端点均由子网中的一个或多个弹性网络接口表示。网络接口提供一个私有 IP 地址,此地址可用作指向 Lambda 的流量的入口点。
Lambda 接口端点的注意事项
请务必先查看 Amazon VPC 用户指南中的接口端点属性和限制,然后再为 Lambda 设置接口端点。
您可以从 VPC 调用任何 Lambda API 操作。例如,您可以通过在 VPC 内调用 Invoke
API 来调用 Lambda 函数。有关 Lambda API 的完整列表,请参阅 Lambda API 参考中的操作。
use1-az3
是支持 Lambda VPC 函数的有限容量区域。您不应将此可用区中的子网与 Lambda 函数一起使用,因为这可能会在发生中断时导致可用区冗余减少。
对于持久性连接保持连接状态
Lambda 随时间推移逐渐清除空闲连接,因此您必须使用 keep-alive 指令来维护持久连接。在调用函数时尝试重用空闲连接会导致连接错误。要维护您的持久连接,请使用与运行时关联的 keep-alive 指令。有关示例,请参阅 Amazon SDK for JavaScript 开发人员指南 中的在 Node.js 中重复使用具有保持连接功能的连接。
计费注意事项
通过接口端点访问 Lambda 函数不会产生额外费用。有关 Lambda 定价的更多信息,请参阅 Amazon Lambda 定价
Amazon PrivateLink 的标准定价适用于 Lambda 的接口端点。您的Amazon账户将按在每个可用区中预置的每小时以及通过接口端点处理的数据进行计费。有关接口端点定价的更多信息,请参阅 Amazon PrivateLink 定价
VPC 对等连接注意事项
您可以使用 VPC 对等连接通过接口端点将其他 VPC 连接到 VPC。VPC 对等连接是两个 VPC 之间的网络连接。您可以在自己的两个 VPC 之间建立 VPC 对等连接,或者在自己的 VPC 与其他 Amazon 账户中的 VPC 之间建立此连接。VPC 也可以位于两个不同的Amazon区域中。
对等 VPC 之间的流量保留在Amazon网络上,不会穿越公有互联网。建立对等 VPC 连接后,两个 VPC 中的资源(如 Amazon Elastic Compute Cloud (Amazon EC2) 实例、Amazon Relational Database Service (Amazon RDS) 实例或启用 VPC 的 Lambda 函数等)可以通过在其中一个 VPC 中创建的接口端点访问 Lambda API。
为 Lambda 创建接口端点
您可以使用 Amazon VPC 控制台或 Amazon Command Line Interface (Amazon CLI) 为 Lambda 创建 VPC 端点。有关更多信息,请参阅 Amazon VPC 用户指南中的创建接口端点。
为 Lambda(控制台)创建接口端点
-
打开 Amazon VPC 控制台的 Endpoints(端点)页面
。 -
选择 Create Endpoint(创建端点)。
-
对于服务类别,请确保选择 Amazon 服务。
-
对于服务名称,选择 com.amazonaws.
region
.lambda。验证类型为接口。 -
创建 VPC 和子网。
-
要为接口端点启用私有 DNS,请选中 Enable DNS Name(启用 DNS 名称)复选框。我们建议您为 Amazon Web Services 服务 的 VPC 端点启用私有 DNS 名称。这可以确保使用公有服务端点的请求(例如通过 Amazon SDK 发出的请求)解析到您的 VPC 端点。
-
对于安全组,选择一个或多个安全组。
-
选择 Create Endpoint(创建端点)。
要使用私有 DNS 选项,您必须设置 VPC 的 enableDnsHostnames
和 enableDnsSupportattributes
。有关更多信息,请参阅 Amazon VPC 用户指南中的查看和更新 VPC 的 DNS 支持。如果为接口端点启用私有 DNS,则可使用区域默认 DNS 名称向 Lambda 发出 API 请求,例如 lambda.cn-north-1.amazonaws.com.cn
。有关更多服务端点,请参阅《Amazon Web Services 一般参考》中的服务端点和配额。
有关更多信息,请参阅 Amazon VPC 用户指南中的通过接口端点访问服务。
有关使用 Amazon CloudFormation 创建和配置端点的信息,请参阅 Amazon CloudFormation 用户指南中的 AWS::EC2::VPCEndpoint 资源。
为 Lambda (Amazon CLI) 创建接口端点
使用 create-vpc-endpoint
aws ec2 create-vpc-endpoint --vpc-id
vpc-ec43eb89
--vpc-endpoint-type Interface --service-name com.amazonaws.us-east-1.lambda --subnet-id subnet-abababab --security-group-idsg-1a2b3c4d
为 Lambda 创建接口端点策略
要控制哪些用户可以使用您的接口端点,以及用户可以访问哪些 Lambda 功能,您可以将端点策略附加到端点。该策略指定以下信息:
-
可执行操作的主体。
-
主体可以执行的操作。
-
委托人可以对其执行操作的资源。
有关更多信息,请参阅 Amazon VPC 用户指南 中的使用 VPC 终端节点控制对服务的访问。
示例:用于 Lambda 操作的接口端点策略
以下是用于 Lambda 的端点策略示例。连接到端点时,此策略允许 MyUser
用户调用函数 my-function
。
注意
资源中需要同时包含限定函数和非限定函数 ARN。
{ "Statement":[ { "Principal": { "AWS": "arn:aws:iam::111122223333:user/MyUser" }, "Effect":"Allow", "Action":[ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:us-east-2:123456789012:function:my-function", "arn:aws:lambda:us-east-2:123456789012:function:my-function:*" ] } ] }