Jac*_*eja 5 amazon-web-services aws-lambda
我们部署了多个Lambda,可以使用该VpcConfig设置访问我们的VPC 。
我了解AWS Lambda通常会根据需要创建lambda,但是如果您将它们连接到VPC,则AWS会(在某个时候)在中指定的子网之一上创建ENI VpcConfig并附加lambda容器以允许其访问您的VPC。
但是究竟是什么触发了ENI的创建和附加呢?我注意到,lambda和ENI之间以及ENI与子网之间没有一对一的映射。另外,什么决定了ENI附加到哪个子网?
如果我ping localhost为VPC配置手动运行了一个测试lambda(至),它将永远不会创建ENI。所以我猜这是因为它没有尝试访问网络上的任何内容。
这需要了解Lambda容器和容器重用。首次调用Lambda函数时,将创建一个Lambda容器,并将Lambda函数部署到该容器中。如果您使用VPC设置配置了该功能,则将为该容器分配一个ENI。然后,下次调用该函数时,如果该容器仍然存在且已部署该函数,并且当前未被其他调用使用,它将重新使用该容器(因此无需创建新的ENI)。如果容器正在忙于处理另一个调用,则将使用新的ENI部署另一个容器来处理挂起的调用。当容器闲置一段时间后,Lambda服务将自动删除容器和附加的ENI。
另外,什么决定了ENI附加到哪个子网?
在配置Lambda功能以进行VPC访问时,需要在VPC中列出将要部署到其的一个或多个子网。我不相信实际的算法已经由Amazon发布,但是它似乎使用循环算法在配置的子网之间传播容器的创建。出于实际目的,您可以考虑在每次创建新的Lambda容器时“随机”选择一个子网。我假设它还会检查子网中是否有可用的IP地址,或者如果它在获取给定子网中的新ENI的IP时遇到问题,则将故障转移到另一个子网,但是同样,我不知道该文件已被记录在案。任何地方。
| 归档时间: |
|
| 查看次数: |
597 次 |
| 最近记录: |