我有两个lambda。LambdaA是使用Event
InvocationType (boto3)并行调用LambdaB的父lambda。在每次调用中,LambdaA向LambdaB发送5MB的有效载荷。两个lambdas在同一个VPC中,并且在同一个私有子网(和同一个安全组)中。
现在,假设LambdaA为了进一步调用并行调用LambdaB 5000次,那么在LambdaA和LambdaB之间将传输25GB的总有效载荷。
-
我想知道我是否会被收取50GB的数据传输作为数据传输成本,鉴于数据传输是在相同的VNet和相同的两个私有子网(和相同的安全组)。
-
如果在相同的VPC和相同的私有子网(只有一个相同的安全组)我也会被收费吗?
?
当一个AWS Lambda函数调用另一个AWS Lambda函数时,它将发送流量到AWS Lambda服务的端点(而不是发送到另一个Lambda函数本身)。由于您的第一个Lambda函数连接到VPC,而AWS Lambda服务端点在Internet上,因此请求需要退出VPC才能访问Internet。
来自EC2按需实例定价- Amazon Web Services:
从公共或弹性IPv4地址"输入"one_answers"输出"的数据在每个方向上都收取0.01美元/GB的费用。
然而,如果你的第一个Lambda函数没有连接到VPC,那么就不会有这样的收费,因为Lambda函数将直接连接到互联网。通常,只有当AWS Lambda函数需要访问VPC中的资源(例如Amazon RDS数据库)时,您才应该将其连接到VPC。
或者,您可以使用VPC端点直接连接到AWS Lambda服务。来自为Lambda配置接口VPC端点—AWS Lambda:
如果您使用Amazon Virtual Private Cloud (Amazon VPC)托管AWS资源,您可以在VPC和Lambda之间建立连接。您可以使用此连接来调用Lambda函数,而无需通过公共internet。
这将允许您的Lambda函数连接到VPC,但也连接到AWS Lambda服务而不"退出"VPC,从而避免1c/GB的费用。
要意识到的主要事情是两个Lambda函数不直接通信。相反,通信是与AWS Lambda服务进行的,该服务随后负责供应和调用第二个Lambda函数。
是的,您将被收取EC2 AZ到AZ的入口和出口成本。
如果数据是通过S3下载的,那么就没有成本了。